This page is part of a static HTML representation of the TiddlyWiki at https://tiddlywiki.com/

"A free, open source wiki revisited" by Mark Gibbs, NetworkWorld

 4 février 2016 à 22h53

Interesting article giving the perspective of someone who has been away from TiddlyWiki for a few years:

http://www.networkworld.com/article/3028098/open-source-tools/tiddlywiki-a-free-open-source-wiki-revisited.html

Way back in the mists of time (actually, January 2009) I wrote about a really cool tool called TiddlyWiki, a “non-linear personal web notebook”. Fast forward to today and I just had an out of body experience: Completely by accident I found a TiddlyWiki that I started when I wrote that piece and it still works!

Finding code that works flawlessly after just two or three years is magical enough but after seven years?! And given that TiddlyWiki is written as a single page Web application and considering how different browsers are now than they were in 2009, the fact that the old version of TiddlyWiki still works is not short of miraculous.

"Un carnet de thèse" par Alberto Molina

 20 juin 2015 à 17h07

Un carnet de thèse, basé sur TiddlyWiki.

Voici un exemple de carnet de thèse réalisé avec TiddlyWiki 5.0.8-beta.

TiddlyWiki est un très beau logiciel de Jeremy Ruston. Il vous permet, entre autres choses, de prendre des notes, de gérer vos idées, de garder des informations, et d'afficher un tas de choses de la façon que vous choisirez. C'est un outil incroyablement malléable que vous pouvez adapter à la plupart de vos besoins.

Ce TiddlyWiki a été personnalisé pour être utilisé comme un carnet de notes sur la philosophie, récapitulant auteurs, ouvrages, articles, concepts, théories, et notes personnelles. Je l'utilise avec Zotero, un logiciel spécialisé de bibliographie. Les deux sont des projets libres et ouverts. TiddlyWiki peut-être téléchargé sur https://tiddlywiki.com.

"ATWiki" by Lamusia Project

 6 janvier 2021 à 15h10

A desktop application for TiddlyWiki, running on Windows.

https://lamusia.github.io/#ATWiki

TiddlyWiki for Windows. A unique non-linear notebook for capturing, organising and sharing complex information.

"BJTools" par buggyj

 12 octobre 2014 à 16h57

buggyj a créé plusieurs plugins utiles, notamment un éditeur HTML WYSIWYG, un calendrier configurable et des listes de tags réagençables par simple glisser-déplacer.

"BrainTest - tools for a digital brain" par Danielo Rodriguez

 12 octobre 2014 à 16h55

Une collection de diverses personnalisations et macros, par Danielo Rodriguez.

Ceci est mon fichier tiddlywiki de test personnel.

Ici, je posterai les outils et macros que je développe pour ce merveilleux outil. Ainsi, toute l'aide que j'ai reçue de la communauté retourne à la communauté.

"Briefcase" par Roma Hicks

 19 novembre 2014 à 19h34

Une adaptation pour TiddlyWiki version 5 du système GTD® adapté pour TiddlyWiki, connu précédemment sous le nom de MonkeyGTD.

Briefcase est un outil Getting-Thing-Done pour TiddlyWiki5 basé sur le mGSD classique pour TiddlyWiki.

"Cardo - Task and Project Management Wiki" by David Szego

 6 janvier 2021 à 15h10

Task & Delegation Tracking, Meetings & Agenda Items, Project Roles, Progress & Status Updates, Reference Items, Tickler Calendar, Conversation Logging, Book Notes & Library, and More!

http://cardo.wiki

Cardo is a standalone, browser-based tool that can be used as a simple task manager, or as a complex Project Management system (and indeed, I do use it this way in my daily work) as well as a fully Wiki-ized personal knowledge store. It runs completely independently in the browser, even without an Internet connection, making it possible to carry around on a USB stick, or to use on the morning commute.

"CouchDB Adaptor", par William Shallum

 18 novembre 2014 à 21h54

Un adaptateur qui permet à TiddlyWiki de synchroniser les modifications avec une base de données CouchDB.

L'adaptateur CouchDB pour TiddlyWiki 5. Nécessite une version de TiddlyWiki >= 5.1.2.

Fonctionne après des tests limités. Difficile de garantir qu'il gère les conflits correctement.

"Creating a baby journal with TiddlyWiki 5" from A Penguin in Redmond

 20 février 2014 à 8h45

A guide to creating a baby journal with TiddlyWiki.

http://a-penguin-in-redmond.blogspot.co.uk/2014/02/creating-baby-journal-with-tiddlywiki-5.html

Keeping a journal about your baby is fun. It allows you to keep track of those events in your baby's life and development that are most important to you, and to tell them in your own words. [...]

There are plenty of online services that can help to keep such a diary, but you need to have an internet connection to access them, and you have to trust them to keep your data safe.

"Dracula - a dark palette for TiddlyWiki" by SlyBouhafs & zenorocha

 1 janvier 2021 à 16h36

A dark palette for TiddlyWiki.

https://draculatheme.com/tiddlywiki

Install manually

Open the Control Panel > Appereance > Palette, scroll down and clone a platte, rename it to Dracula and copy the code from the website.

Activating theme

  • Open the Control Panel > Appereance > Palette
  • Scroll down and select Dracula
  • Boom! It's working

"Drift - Collect, Organise, Grow." by Tony K

 10 janvier 2023 à 22h00

A adaptation of TiddlyWiki perfect for using as a Notebook sysetem.

https://github.com/bmann/drift-tiddlywiki-template/tree/master/drift

Drift is an adaptation of TiddlyWiki with the goal of helping you Collect. Organise. and Grow. your ideas while keeping tab on how they interconnect together and fluidly Drift from one to another.

The 2 main components of Drift are TWCrosslinks and DailyNotes so you never miss an idea

Drift was inspired by TiddlyBlink / Stroll and adapted to fit my needs.

"Dropboard" by Reid Gould

 6 janvier 2021 à 15h10

A TiddlyWiki plugin for kanban-like organisation in the style of Trello™ using boards, lists, and cards.

https://github.com/reidgould/tiddlywiki-dropboard

"Dynamic Tables" by Jed Carty

 13 novembre 2021 à 1h06

Dynamic Tables is a set of macros that allow you to create tables where the rows are created from tiddlers and the columns from the tiddler fields, or where the columns are created from tiddlers and the rows from their fields. Individual cells can be edited on the fly. Row tables can be sorted by columns and column tables can be sorted by rows.

http://ooktech.com/jed/ExampleWikis/DynamicTables/

"Encrypt single tiddler plugin" by Danielo Rodriguez

 13 novembre 2021 à 1h06

A plugin that allows to encrypt your tiddlers individually Danielo Rodriguez.

http://danielorodriguez.com/TW5-EncryptTiddlerPlugin/

Advantages:

  • You can specify a different password for each tiddler if you want.
  • You don't have to encrypt your whole wiky.
  • If you forget your password, you only lose a tiddler.
  • It's possible to edit the tiddler content , tags and fields except the encrypt field after encryption.
  • [...]

Extension "file-backups" pour Firefox, par pmario

 2 avril 2022 à 11h58

Une extension pour Mozilla Firefox qui fluidifie l'utilisation de l'enregistreur HTML5 par défaut de TiddlyWiki, et le rend presque aussi convivial que TiddlyFox. L'extension est conçue pour fonctionner immédiatement, sans configuration.

https://github.com/pmario/file-backups contient des liens vers la documentation et des vidéos de présentation.

Une version pour Chrome est prévue !

"Filter Examples" by Tobias Beer

 6 janvier 2021 à 15h10

This wiki gives examples for various filters and their use in the list widget

http://tobibeer.github.io/tw/filters/#Filter%20Examples

This wiki gives examples for various filters and their use in the list widget. A good starting point to understand what filters yield which results also is test-filters.js.

"Font Awesome 5 Free SVGs for TiddlyWiki" by morosanuae

 6 janvier 2021 à 15h10

The Font Awesome 5 Free SVG images collection converted to tiddlers that you can easily import (drag'n'drop) in your wiki.

http://fa5-free-svg.tiddlyspot.com

"Ghostwriter theme by Rory Gibson" adapted for TW5 by Riz

 6 janvier 2021 à 15h10

An adaption of the "Ghostwriter" theme for TiddlyWiki.

https://ibnishak.github.io/ghostwriter/

Ghostwriter is a popular, minimalist and mobile responsive theme for the blogging platform ghost. This is an adaptation for TiddlyWiki.

"Gospel Bubbles" by Rev. David Gifford

 6 janvier 2021 à 15h10

Creates bubble maps of Biblical texts.

http://giffmex.org/gospels.bubbles.html#Gospels%20Bubbles

This TiddlyWiki, which is still under construction, has several features that together make it lightning fast to find passages, types of passages, themes, people, places and images in the New Testament Gospels. The bubblemaps are color-coded overviews of each Gospel. Each type of passage (miracle story, parable, etc) was assigned a color. Bubblemaps allow you to do three things:

  1. The bubblemaps are color-coded overviews of each Gospel. Each type of passage (miracle story, parable, etc) was assigned a color. Bubblemaps allow you to do three things:
    1. See how the different types of passages are distributed throughout each Gospel.
    2. Hover over passages to see the verses and titles.
    3. Click on a passage to open it and see the themes and other data it mentions.
  2. The themes by passage indexes are lists of the passages in each Gospel, followed by the themes and other data found in the passage. Clicking on a theme calls up a list of all the passages that mention that theme.
  3. The indexes of themes contain lists of links to each theme, person, group, place and image. Clicking on a theme calls up a list of all the passages that mention that theme.
  4. There is a search window hidden in the right hand menu. Use the search window to find passages quickly, by typing things like sower or paralytic. Click the arrows in the upper right of the screen to open the menu and search.

"Grok TiddlyWiki" by Soren Bjornstad

 19 mai 2021 à 12h02

This new textbook from Soren Bjornstad is highly recommended for learning TiddlyWiki. The presentation and design are also a first class example of using TiddlyWiki.

From the site:

Grok TiddlyWiki is a textbook that helps you build a deep, lasting understanding of and proficiency with TiddlyWiki through a combination of detailed explanations, practical exercises, and spaced-repetition reviews of prompts called takeaways.

https://groktiddlywiki.com/read/

"GSD5" by Roma Hicks

 26 février 2022 à 20h52

An adaptation of the TiddlyWiki powered GTD® system formerly known as MonkeyGTD for TiddlyWiki version 5.

http://gsd5.tiddlyhost.com/

GSD5 is a Getting-Thing-Done tool for TiddlyWiki5 based off the mGSD classic TiddlyWiki.

"Hacks" by Thomas Elmiger

 6 janvier 2021 à 15h10

A collection of helpers by Thomas Elmiger, among them a tweet button macro, a text-stretch solution, a snippet extraction macro and a tiddler that installs a scroll-to-top button via drag-and-drop.

http://tid.li/tw5/hacks.html

Quick Extensions for TiddlyWiki 5 – […] As I take from the community, I am happy if I can give back. You can use my stuff to do whatever you like, but remember to save a back-up first.

Thomas

"Heeg.ru" by sini-Kit

 6 janvier 2021 à 15h10

A guide in Russian to creating an online shop with TiddlyWiki. No serverside code is needed, instead orders are handled by Disqus.

http://heeg.ru/

"In My Socks" by Jed Carty

 6 janvier 2021 à 15h10

An extensive collection of hints and tips from Jed Carty.

http://inmysocks.tiddlyspot.com

I made this so that some of my friends with absolutely no coding experience could use some of the better features of TW5 without having to learn much. I am hopefully going to continue updating it as I learn new things. There isn't really anything here that isn't available in plenty of other places, but I figured that since I spent a while putting it together and people keep saying that TW needs more documentation I would post it here.

"JD Mobile Layout plugin" by JD

 6 janvier 2021 à 15h10

A plugin that improves the usability of TiddlyWiki on smartphones by JD:

http://j.d.simplemobile.tiddlyspot.com

"JD's palettes" by JD

 1 janvier 2021 à 16h45

Some palettes by JD.

http://j.d.palette.tiddlyspot.com/

You can install any or all of these by dragging any of the below links into your Tiddlywiki:

  • Brown One
  • C8 Dark
  • Cool Mint
  • Neonize
  • Spartan Day
  • Spartan Night

"Lucky Sushi" online shop by sini-Kit

 6 janvier 2021 à 15h10

A complete online shop made in TiddlyWiki!

http://luckysushi.ru/habarovsk/heeg.html#index

"Mal's Sandbox" by Mal

 6 janvier 2021 à 15h10

A collection of extensions by @malgam

http://malsandbox.tiddlyspot.com

The "loadnew" plugin provides the JavaScript module $:/plugins/malgam/loadnew/loadnew.js that implements an incremental load command for Tiddlywiki 5.

The javascript code is based on the built-in module $:/core/modules/commands/load.js that loads tiddlers from a Tiddlywiki file into a node.js Tiddlywiki instance. This command loads all non-system tiddlers, irrespective of whether they have been modified since last loaded. As a result, all tiddlers in the node.js tiddlers folder will end up with a new modification date.

In contrast, the loadnew command only loads tiddlers that either don't already exist in the tiddlers folder, or have a newer modified date than the existing tiddler.

With a backup strategy that uses a file system snapshot process to preserve historical versions of tiddlers, the loadnew command minimises the sizes of the resulting snapshots.

"MathCell" by Stephen Kimmel

 6 janvier 2021 à 15h10

Mathcell allows spreadsheet-like abilities in a completely contained TiddlyWiki.

http://mathcell.tiddlyspot.com/

Mathcell allows spreadsheet-like abilities in a completely contained TiddlyWiki. Additional abilities allow it work as a general math engine.

"Microblogging con Tiddlywiki" by Juan

 8 octobre 2014 à 14h43

A Spanish guide to using TiddlyWiki on Android.

http://3palmeras.wordpress.com/2014/11/05/microblogging-con-tiddlywiki/

Tiddlywiki software is prodigious based on javascript which is capable of holding a notepad that can be edited with Internet Explorer or function as a full blog, contained in a single file.

Translation by Google Translate

"Moments: A little color won't hurt" by Riz

 6 janvier 2021 à 15h10

An adaption of the "Moments" theme for TiddlyWiki.

http://tesseractmoments.surge.sh/

Moments is a beautiful free and responsive theme available for wordpress from here: http://www.s5themes.com/theme/moments/. This is an adaptation of the same for TW5 platform. All the design credits goes to the site and the original designer. If TW5 is going to be here for 25 years, might as well suit up.

"Mono theme" by JD

 1 janvier 2021 à 15h46

This theme by JD features a left side bar, advanced functionality from the search bar and plenty of customizability built in.

http://j.d.mono.tiddlyspot.com/

"muritest" by Simon Huber

 13 novembre 2021 à 23h06

A terrific demo of drag and drop, pan and zoom, and other sophisticated touch effects. Based on the muuri plugin by Uwe Stuehler.

http://muritest.tiddlyspot.com

"Notebook theme" by Nicolas Petton

 10 janvier 2021 à 21h09

Notebook is a clean, uncluttered theme for TiddlyWiki.

https://nicolas.petton.fr/tw/notebook.html

Notebook is a clean, uncluttered theme for TiddlyWiki.

  • The theme is responsive and comes with mobile support through the included notebook-mobile plugin.
  • Notebook comes with 3 default colour palettes, a grey, beige and dark one. To switch between colour palettes, click the color palette switch button in the top bar.
  • Notebook uses a custom left sidebar, with another sticky bar at the top of the page (or at the bottom on mobile).

"Noteself" par Danielo Rodríguez

 2 avril 2022 à 11h58

NoteSelf est votre version personnelle, privée, et personnalisable de l'expérience utilisateur d'Evernote. Vous voulez du cloud ? Bien ! Vous n'en voulez pas ? C'est bien aussi ! C'est à vous, c'est votre choix ! Pourquoi ne seriez-vous pas un peu égoïste ?

https://noteself.github.io/

NoteSelf est le support parfait pour vos idées, vos notes, vos pensées, vos astuces, vos recettes... tout ce que vous voulez ! NoteSelf les stockera, les indexera et les rendra faciles à rechercher, pour que vous les trouviez instantanément quand vous en avez besoin !

Vous connaissez déjà Evernote et vous l'adorez, nous le savons bien. Il est confortable, il se synchronise, il permet la recherche... Ouah ! Il est presque parfait, mais que pensez-vous de :

  • La vie privée : tout est stocké sur les serveurs d'Evernote !
  • La personnalisation : si vous n'aimez pas l'interface d'Evernote, il n'y a rien à faire.

NoteSelf est construit sur la base de TiddlyWiki, un logiciel libre de wiki personnel puissant, gratuit et hautement personnalisable. Nous en avons tiré le meilleur, son système puissant de personnalisation, et l'avons combiné avec une des meilleures bases de données embarquées disponibles, PouchDb, pour y apporter les capacités de synchronisation dont vous avez besoin.

"Notizen mit TiddlyWiki systemübergreifend nutzen" by Michael Sonntag

 10 septembre 2014 à 11h28

A quick guide to using TiddlyWiki (written in German)

http://michaelsonntag.net/notizen-mit-tiddlywiki-systemuebergreifend-nutzen

Those using multiple different computer platforms (if only PC and Android) knows for certain: You would like to sync notes across computers and thereby be independent of any apps or services. I am concerned at any rate so and so I am constantly looking for the perfect solution.

With TiddlyWiki I found it mostly. As the name suggests, it TiddlyWiki is a Wikisystem. In contrast to all other wikis, TiddlyWiki is a single HTML file that runs in the browser and thus can be used on all modern operating systems. And because there is only one file, it can be very easily via the well-known cloud services (Dropbox, Google Drive, ownCloud) or synchronized with FTP or used on a USB stick.

(Translation from German by Google Translate)

"PETTIL - Forth pour Commodore PET" par Charlie Hitselberger

 20 juin 2015 à 17h16

Un interprète Forth véloce pour le Commodore PET, écrit en langage assembleur 6502. Le TiddlyWiki contenant la documentation du programme est automatiquement engendré à partir du code source : voir https://github.com/chitselb/pettil.

Les objectifs du projet étaient, sans ordre particulier :

  • faire un interpréteur Forth exécutable sur mon Commodore PET 2001
  • prendre du plaisir
  • développer mes compétences en "assembleur 6502"
  • trouver d'autres personnes intéressées par le projet

"Reveal.js" by Devin Weaver

 13 novembre 2021 à 23h05

Embed Reveal.js presentations inside your TiddlyWiki.

https://sukima.github.io/tiddlywiki-reveal-js/

reveal.js enables you to create beautiful interactive slide decks using HTML.

With the power of TiddlyWiki and Reveal.js one can…

  • …make an interactive tiddler with fancy animations
  • …Make it go full screen for professional keynote
  • …Distribute the slideshow with examples and additional resources in one HTML file

"savetiddlers" Extension for Chrome and Firefox by buggyj

 2 avril 2022 à 11h58

Une extension pour Google Chrome et Mozilla Firefox qui fluidifie l'utilisation de l'enregistreur HTML5 par défaut de TiddlyWiki, et le rend presque aussi convivial que TiddlyFox une fois configurée.

https://github.com/buggyj/savetiddlers

"Setting Up a Personal TiddlyWiki Server on OS X" by Kris Johnson

 3 avril 2015 à 11h42

Detailed description of setting up TiddlyWiki on Node.js on OS X.

http://undefinedvalue.com/2015/04/02/setting-personal-tiddlywiki-server-os-x

For a new job, I decided to set up a personal wiki to keep notes. I wanted to keep it simple, meeting these requirements:

  • All the data is in a Dropbox folder (so it can be automatically synced between machines)
  • It must support Markdown syntax

After looking at the options, I settled on TiddlyWiki. I've used "classic TiddlyWiki" before, and liked its simplicity, but I was always a little annoyed with the weird steps you have to go through to save changes. The new version of TiddlyWiki includes support for running it as a real HTTP server, so you can use it just like an online wiki.

But it took me a couple of hours to figure out how to set that up. The TiddlyWiki documentation is not clear ("not clear" is a euphemistic way of saying "terrible"). So, I've written up these instructions in the hope it will spare somebody else all the frustration I had.

"Shining Ark Using TiddlyWiki" by Helu

 7 septembre 2013 à 9h45

A gamers guide to using TiddlyWiki.

http://helugame.wordpress.com/2013/09/07/shining-ark-7-using-tiddlywiki/

I’ve been using TiddlyWiki for this game mainly to record the monsters’ locations and the items that they drop. This is so that when I need a certain item to upgrade/create weapons, I can quickly look it up; which monsters drop it and which quests have those monsters.

As I play the game, as I encounter new information, I just input them into my Shining Ark TiddlyWiki. It’s like I’m building a wiki from scratch. The reason why I don’t just use online wikis is that 1) it’s too easy to get spoiled and 2) sometimes online wikis provide too much information (who cares about the non-gameplay related descriptions that can be found in the game, etc).

"SK Plugins" by Stephen Kimmel

 6 janvier 2021 à 15h10

A collection of plugins by Stephen Kimmel, including a number of additional editor toolbar buttons.

http://skplugins.tiddlyspot.com/

In keeping with the general spirit of the TiddlyWiki community, ie, you develop something useful and/or potentially interesting you share it with others, I'm sharing some of the plugins I've developed to go with the new Editor Toolbar. You'll find them and a more extensive discussion of what each does at http://skplugins.tiddlyspot.com/

"Slides and Stories" by Jan

 6 janvier 2021 à 15h10

Slides and Stories is a repository of the tools to optimise TW for scientific research and for presenting and publishing results.

http://slidesnstories.tiddlyspot.com

SlidesnStories

...is a tool to save and reload sets of Tiddlers. This is already working, The aim is to develop a mechanism to transform these into instant slideshows.

MetaTabs

is a tool which gives you the possibility to attach and show specific information in tabs at the bottom of each Tiddler: ideas, notes, tasks, stories and presentations, comments, annotations and footnotes.
It is inspired by MagicTabs and Tiddlyscholar by Alberto Molina Pérez, which are very elaborated tools that alas do not seem to be in active development any more. I wanted to change the behaviour in some ways. For example I wanted show tabs only if they have content.

...furthermore there is

  • an export-plugin,
  • a footnote-plugin,
  • and a plugin to rearrange Tiddlers in the StoryRiver

"Stroll - a Roam-like experience" by David Gifford

 1 janvier 2021 à 20h14

A adaptation of TiddlyWiki perfect for using as a Notebook sysetem.

https://giffmex.org/stroll/stroll.html

Stroll is a TiddlyWiki adaptation imitating certain features of Roam to help users easily see connections between their notes and navigate between them. Features include:

  • bi-directional links,
  • autocompletion when linking,
  • renaming of links upon changing tiddler titles,
  • side-by-side editing of multiple notes.

"TB5 - a pocket full of tips" by Tobias Beer

 6 janvier 2021 à 15h10

An enormous collection of tips beautifully curated by Tobias Beer. It is actually a collection of sites, with sub-sites dedicated to topics such as filtering (http://tobibeer.github.io/tw/filters/).

http://tobibeer.github.io/tb5/

A collection of references and sandbox for testing concepts around TiddlyWiki 5...

"Tekan: Kanban that stays with you" by Riz

 6 janvier 2021 à 15h10

A Kanban implementation for TiddlyWiki with a familiar look and feel (see the demo).

https://ibnishak.github.io/Tesseract/projects/tekan/Tekan.html

This is Tekan, a TW based kanban. The easiest way to know tekan is to use it. So let us begin, shall we?

"TiddlyServer" by Matt Lauber

 13 novembre 2021 à 23h07

Note: This is an older version of TiddlyServer. A modern version can be referenced here.


TiddlyServer is a special purpose Desktop app, designed to facilitate managing multiple instances of TiddlyWiki running as a server. It does not require internet acess to access the wikis.

https://github.com/mklauber/TiddlyServer/releases/

TiddlyServer can import both TiddlyWiki files and TiddlyFolder wikis. For each wiki, you specify a prefix to serve it with and the source to import from. It will copy the wikis to its own internal store and begin serving them up at http://localhost:8080/{prefix}/. The export button for each wiki will convert it to a single file wiki.

"TiddlyStudy" by Kebi

 10 janvier 2023 à 22h04

A adaptation of TiddlyWiki perfect for using as a Notebook sysetem.

https://postkevone.github.io/tiddlystudy/

Tiddly Research is a free and local note-taking environment based on TiddlyWiki

Core Features:

  • Bidirectional note linking on multiple levels
  • Tags
  • Linked references
  • Unlinked references
  • Transclusions
  • Bullet point based hierarchical note taking structure
  • Integration with the spaced repetition flashcards tool Anki
  • TODOs
  • and more

"TiddlyWiki 5 im Betatest" by besim

 5 janvier 2014 à 8h45

Reaction to TiddlyWiki5 from the translator of the German edition of TiddlyWikiClassic.

http://blog.netplanet.org/2014/01/03/tiddlywiki-5-im-betatest/

There is little software that can still inspire me so even after years, as on the first day. This includes TiddlyWiki, the "pocket-wiki". The latter is because the Wiki completely fits into an HTML file, and this HTML file brings everything - JavaScript program logic, CSS appearance and the entire Wiki content as stored records. So a TiddlyWiki file is then sometimes happy times some megabytes in size, but just has the unbeatable advantage that it works just as fast file created locally in a variety of browsers.

(Translation from German by Google Translate)

"TiddlyWiki for Scholars" par Alberto Molina

 26 février 2022 à 17h51

Une version préliminaire d'une édition de TiddlyWiki adaptée à une rigoureuse prise de notes universitaire.

http://tw5.scholars.tiddlyspot.com/

TiddlyWiki for Scholars est une personnalisation de TiddlyWiki 5.0.13-beta, que j'ai écrite en pensant à la prise de notes à partir de lectures, mais qui peut servir à d'autres choses. L'idée est de montrer et de faciliter la création des données liées au tiddler courant sans quitter le tiddler.

"TiddlyWiki guide FR" par Sylvain Naudin

 15 novembre 2014 à 22h08

Une collection de trucs et astuces en Français, introduits par ce post de blog :

http://sylvain.naud.in/post/2014/10/29/Ressources-pour-TiddlyWiki-5-%28FR%29

Ce guide de prise en main de TiddlyWiki vous permettra de débuter sur ce logiciel : rédiger du texte avec la syntaxe wiki, insérer des images, créer des Tiddler, faire une recherche, ajouter des fonctionnalités, et bien d'autres choses.. Bonne lecture ! Sylvain

"TiddlyWiki Knowledge Network" by Dmitry Sokolov

 6 janvier 2021 à 15h10

A Knowledge Network about TiddlyWiki.

http://confocal-manawatu.pbworks.com/w/page/113574373/TiddlyWiki

Interconnected with the visual taxonomy at every node: http://debategraph.org/Stream.aspx?nid=457381&vt=bubble&dc=focus

TWKN will be transferred into TWederation/TiddlyMap format as soon as I am convinced in reliable and secure versioning and multi-user operation in TW format. Your assistance and support would be highly appreciated.

"TiddlyWiki Notes" by James Anderson

 6 janvier 2021 à 15h10

Notes and tips by a developer working on writing TiddlyWiki plugins – including TWExe, a widget for running Windows scripts and executables.

http://welford.github.io

"TiddlyWiki Posts" by Jeffrey Kishner

 5 août 2023 à 15h07

A collection of articles covering integration with Fargo, Font Awesome and Google Calendar, and tips for managing task lists. The original site is missing, but a link to an archive is provided.

https://web.archive.org/web/20221015011644/http://blog.jeffreykishner.com/tiddlywiki/

I have become a regular user of TiddlyWiki and have become so accustomed to using Font Awesome icons in Fargo that I wanted to incorporate the icons into my wikis as well.

"TiddlyWiki Toolmap" by David Gifford

 6 janvier 2021 à 15h10

A topical index of known plugins, tutorials, themes, and other helpful tools for TiddlyWiki.

https://dynalist.io/d/zUP-nIWu2FFoXH-oM7L7d9DM

Some of the topics indexed so far include:

  • Background images and background colors
  • Breadcrumbs
  • Business - examples
  • CSS / Styles, general
  • Calendars, dates and timelines
  • Checklists
  • Collaboration
  • Color palettes
  • Colors
  • Data visualizations
  • Developer / advanced tools
  • Diplay tiddlers horizontally
  • Dropdowns
  • Educational
  • External files
  • Fields
  • Fonts
  • Fun and games
  • Home and lifestyle
  • IFrames and embedding media
  • Image galleries, modals and lightboxes
  • Images, icons, emojis
  • Importing and exporting between TiddlyWiki files
  • Includes scaffolding within a tiddler, dragging to reorder tiddlers, choosing the number of columns
  • Interfacing with, importing and exporting to and from other formats
  • Knowledge bases, dictionaries and glossaries
  • Layout/UI
  • Lightboxes
  • Links, linking
  • Lists and filters
  • Maps and geography
  • Masonry, scaffolding
  • Math
  • MindMapping
  • Mobile tools
  • Music and sound
  • Navigation
  • node.js
  • Note-taking
  • Open the "filter" tab
  • Partially hidden tiddlers
  • Personal websites (examples)
  • Presentations and slideshows
  • Printing
  • Project management
  • Publishing and hosting TiddlyWikis on the web
  • Searching tools
  • Security and backup tools
  • Social media, sharing, comments
  • Spreadsheets and math
  • Startup
  • Sticky titles
  • Story and screenplay creation
  • Table of contents
  • Tables, charts and graphs (cf data visualizations)
  • Tabs
  • Tags, tagging
  • Task management and productivity - to do lists
  • Themes
  • Understanding TiddlyWiki
  • Writing and editing

"TiddlyWiki 舞" by Bram Chen

 6 janvier 2021 à 15h10

A translation of the tiddlywiki.com documentation from Bram Chen, TiddlyWiki's Chinese translator.

http://tw5-zh.tiddlyspot.com

"TiddlyWiki" by Sander de Boer

 27 novembre 2014 à 16h32

Dutch blog post about TiddlyWiki

https://breinbout.wordpress.com/2014/11/26/tiddlywiki/

I'm allergic to websites that are highly dependent on JavaScript. I think that JavaScript has many useful applications to add functionality to a site, but content needs to be visible if JavaScript is switched off. I use the NoScript extension for Firefox and surf with pleasure over the Internet without spontaneous things happen that I do not give permission. I love JavaScript on a short leash. More crazier maybe I'm so excited about TiddlyWiki.

(Translation from Dutch by Google Translate)

"TiddlyWiki5 Bourbon" par mkt_memory

 5 novembre 2014 à 15h05

Une collection importante de trucs et ressources pour les utilisateurs de TiddlyWiki en Japonais.

TiddlyWikiをHTML5にしたTiddlyWiki5が正式にリリースされました。このTiddlyWiki5の使い方について、自分で試した機能を中心に解説します。

TiddlyWiki5は、非常に多機能なローカルWikiです。このブログに書いてあることは、TiddlyWiki5で出来ることのごく一部です。

"TiddlyWiki5 Forum on Reddit" by Riz

 6 janvier 2021 à 15h10

A TiddlyWiki5 forum on Reddit.

https://www.reddit.com/r/TiddlyWiki5/

A TiddlyWiki5 forum on Reddit. As of 2016, it claims to have the most up-to-date list of plugins available for TW5.

"TiddlyWiki5 Playground" by Ton Gerner

 6 janvier 2021 à 15h10

Huge collection of customisations and tweaks from Ton Gerner.

http://tongerner.tiddlyspot.com/

I am a longtime user of TiddlyWiki Classic and still use it daily since you can't do everything in TiddlyWiki 5 (yet) ;)

I started experimenting with TW5 at the end of September 2013 (alpha10). Since I missed a few things in the layout I got used to in TiddlyWiki Classic 1, I started with modifying the layout of TW5. To share my knowledge, I made a few guides about these 'modifications'. The guides started as a non-linear personal web notebook (yeah, the subtitle of TiddlyWiki!). I started experimenting with layout things and used TW5 to document my experiments.

"TiddlyWiki5^2 documenting while learning TiddlyWiki5" by Iannis Zannos

 6 janvier 2021 à 15h10

A wealth of hints, tips and notes about using TiddlyWiki on Node.js:

TiddlyWiki is different from other wikis because of its principle of dynamically customizeable "storyline" based on tiddlers as basic units of information. That is, the user "composes" their own version of the webpage by clicking on tiddler links, which add tiddlers to the page in order to compose a storyline.

The Node.js implementation in TiddlyWiki5 adds all the advantages of flat-file markup language based type of site. This makes TiddlyWiki an excellent alternative to flat-file based CMS/webpage/blog authoring systems for the web.

Also very cool is the treatment of tags as menus everywhere.

http://larigot.avarts.ionio.gr/users/iani/wikis/tw5square.html

Also available on GitHub (download and save index.html and open it in your browser).

"TW Icons" by morosanuae

 13 novembre 2021 à 22h59
A large collection of icons for TiddlyWiki.

https://morosanuae.github.io/tw-icons

"TW5 Magick" by Stephan Hradek

 14 novembre 2021 à 20h53

Stephan Hradek's growing catalogue of tips, tutorials, and other resources. Stephan has also developed several plugins and macros that you can find at http://tiddlystuff.tiddlyspot.com/.

http://tw5magick.tiddlyspot.com/

Some things in TiddlyWiki seem like Magic. As my preferred nick is Skeeve, I felt that TW5 Magick is a proper name for this collection of some of the "magic" tricks one can do with TiddlyWiki.

"TW5 Tribal Knowledge" from Scott Kingery

 21 mars 2014 à 8h45

Tips and guides for using TiddlyWiki.

http://techlifeweb.com/tw5tribalknowledge.html

I never used Node.js until a couple weeks ago when I wanted to try a TW5 installation on Node and expand my knowledge a bit. I figured someone else may be in the same boat so I wrote it all down

"TW5-TeXZilla" plugin by Joe Renes

 6 janvier 2021 à 15h10

An alternative LaTeX plugin for TiddlyWiki5. It supports a wider set of LaTeX commands than KaTeX, though not as extensive as MathJax

http://tw5-texzilla.tiddlyspot.com

This plugin provides LaTeX support in TiddlyWiki5, using the TeXZilla latex parser to generate MathML.

Only Firefox and Safari support MathML at the moment, so the plugin is only useful if you're using one of these browsers. It might be possible to combine this plugin with MathJax to convert MathML to something that other browsers can understand, e.g. HTML+CSS, but I haven't tried this.

"TWeb.at" by Mario Pietsch

 6 janvier 2021 à 15h10

A collection of TiddlyWiki resources from Mario Pietsch, with a focus on cloud deployments. Mario also maintains the German translation of TiddlyWiki.

https://tweb.at

My name is Mario Pietsch from Austria. I'm living near Salzburg.

This page, will be the portal to my TiddlyWiki, TiddlyWeb related content.

"Un wiki sur votre BiblioBox avec TiddlyWiki" par A Penguin à Redmond

 20 juin 2015 à 17h47

Un manuel d'utilisation de TiddlyWiki (en Français) sur BiblioBox, une des variations de la PirateBox, système mobile de transfert et partage de fichiers.

http://bibliobox.net/blog/post/2014/07/16/un-wiki-sur-votre-bibliobox-avec-tiddlywiki

J'ai connu TiddlyWiki à ses débuts en 2004. Je l'utilisais régulièrement comme bloc-notes de façon personnelle ou professionnelle en 2007 et 2012. Mais j'admets avoir ignoré cet outil pendant les deux dernières années. Et voilà que je me suis dit hier : mais pourquoi ne pas mettre TiddlyWiki sur une BiblioBox ? puisque c'est un simple fichier HTML avec du javascript. De plus je connaissais l'existence d'une version serveur pour sauvegarder les modifications en ligne.

"Whitespace, a negative-spacious, webapp-nostalgic theme" by JD

 1 janvier 2021 à 15h46

A beautiful theme that leverages the white spaces between elements.

http://j.d.whitespace.tiddlyspot.com/

"Wikilabs" by PMario

 6 janvier 2021 à 15h10

A collection of references for testing concepts around TiddlyWiki 5...

https://wikilabs.github.io

This is PMario's playground with ramblings about TiddlyWiki and related stuff.

It basically is a "jump off" page to various TiddlyWiki sites, that show editions, themes and plugins.

"Wills Q&D gTD" by Matabele

 6 janvier 2021 à 15h10

Matabele's stylish and clean system for personal task management.

http://wills.tiddlyspot.com

This is my work in progress version of TW5, incorporating various features and ideas as and when they intrigue me. To grab any feature you may wish to try, drag the listed tiddlers across to the dropzone of an empty TiddlyWiki 5.0.10-beta

"X3DOM for TiddlyWiki 5" by Jamal Wills

 6 janvier 2021 à 15h10

An experiment to embed interactive 3D graphics within TiddlyWiki by Jamal Wills. It is based X3DOM, an open source JavaScript library.

http://x3dom.tiddlyspot.com/

"デザイン刷新。次の25年を目指すTiddlyWiki" by Moongift

 11 novembre 2013 à 8h45

Un mini-guide de TiddlyWiki

 17 avril 2022 à 21h46

TiddlyWiki est un outil incroyablement souple et polyvalent, conçu et mis au point d'une façon très différente de la plupart des logiciels. Cela peut paraître très difficile à comprendre, jusqu'à ce qu'en un claquement de doigts, il devienne une extension directe de votre cerveau.

Pour commencer par les bases, TiddlyWiki est une application web dédiée à la prise de notes, que vous pouvez obtenir gratuitement, stocker n'importe où, et personnaliser selon vos souhaits. Elle vous servira à conserver, organiser, et partager vos notes de manière inédite en comparaison des traitements de texte et autres outils habituels de prise de notes.

TiddlyWiki privilégie la non-linéarité : le contenu se structure à l'aide de déroulés, de tags, d'hyperliens, et d'autres fonctionnalités spécifiques. Vous pouvez organiser vos notes et y accéder selon votre manière de penser, sans vous sentir contraint par une structure d'organisation prédéfinie.

Vous pouvez utiliser TiddlyWiki sous forme de fichier autonome, affichable et éditable depuis n'importe quel navigateur web, que vous soyez connecté ou déconnecté. Vous pouvez aussi vous en servir comme une application Node.js, à même de synchroniser chacune de vos notes dans un fichier séparé.

Comment faire fonctionner TiddlyWiki chez vous ? Notre conseil est de commencer par lire les textes de présentation ci-dessous, puis de naviguer dans la Table des matières présente dans l'onglet Sommaire de la barre latérale. Ou si vous préférez, vous pouvez suivre nos instructions de démarrage et vous jeter à l'eau !

Voir aussi :

À propos

 31 mai 2015 à 19h31

abs Operator

 11 juin 2019 à 18h42
purposecalculate the absolute value of a list of numbers
inputa selection of titles
outputthe absolute value of the input numbers

Learn more about how to use Filters

Depuis : 5.1.20 See Mathematics Operators for an overview.

Examples

abs Operator (Examples)

 11 juin 2019 à 18h42

[[-2000]abs[]]

=-1 =-2 =3 =4 =5 +[abs[]]

Ace Editor Plugin by Joerg Plewe

 6 janvier 2021 à 15h10

A plugin to integrate the Ace editor into TiddlyWiki.

http://innoq.tiddlyspot.com

Being quite new to TW5 development I tried my best to draft a SyncAdaptor to store tiddlers in IndexedDb. This is quite useful if an application / plugin installation is not possible (we have quite some restrictions at work...).

Remerciements

 15 novembre 2014 à 22h57

TiddlyWiki n'aurait pas été possible sans le soutien constant de la Communauté. Son attention et ses retours ont permis de comprendre ce qui était attendu de cet outil, et sa passion pour le projet m'a appris que le jeu en valait la chandelle.

TiddlyWiki intègre du code provenant de ces excellents projets OpenSource :

Et des contenus provenenant de ces sources :

acos Operator

 21 octobre 2021 à 23h28
purposecalculate the arccosine value (in radians) of a list of numbers
inputa selection of titles
outputthe arccosine (in radians) of the input numbers

Learn more about how to use Filters

Depuis : 5.1.21 See Mathematics Operators for an overview.

This is the inverse operation of cos: cos calculate the cosine of an angle (in radian), but acos calculate the angle (in radian) of a cosine.

Examples

acos Operator (Examples)

 20 octobre 2021 à 15h27

[[2]acos[]]

=1 =2 =3 =4 +[acos[]]

ActionConfirmWidget

 15 novembre 2020 à 16h03

Introduction

Depuis : 5.1.23The action-confirm widget is an action widget that prompts the user for confirmation and invokes other action widgets contained within it only if the user confirms. ActionWidgets are used within triggering widgets such as the ButtonWidget.

Content and Attributes

The action-confirm widget is invisible. Any content within it is only processed if the user confirms the action, or the confirmation has been disabled by the $prompt attribute.

AttributeDescription
$messageOptional message displayed to the user when asking for confirmation.
$promptOptional flag, set to "no" to disable the prompt for confirmation. Defaults to "yes"

Examples

Here is an example of a button that asks the user for confirmation, before deleting the caption and tags fields of the current tiddler:

<$button>
<$action-confirm $message="Do you wish to delete the caption and tags?">
<$action-deletefield caption tags/>
Delete "caption" and "tags"
</$action-confirm>
</$button>

Affichera ceci :

Here is an example of a button that uses the optional $prompt attribute to control whether to prompt the user before deleting the text field of the tiddler HelloThere:

<$button>
<$action-confirm $message="Do you wish to delete the text field?" $prompt={{$:/state/promptUser}}>
<$action-deletefield $tiddler="HelloThere" $field="text"/>
</$action-confirm>
Delete text from ~HelloThere
</$button>

Affichera ceci :

ActionCreateTiddlerWidget

 15 janvier 2023 à 8h47

Introduction

The $action-createtiddler widget is an action widget that creates new tiddlers. Action widgets are used within triggering widgets such as the ButtonWidget.

There are several differences from the tm-new-tiddler message:

  • The new tiddler is not automatically displayed in the story river
  • The title of the new tiddler is made available for subsequent operations

Content and Attributes

The action-createtiddler widget is invisible.

AttributeDescription
$basetitleThe initial title that will be attempted. If a tiddler with that title already exists, then a numerical counter is added to the title and incremented until it is unique
$savetitle. Utilisez ActionCreateTiddlerWidget Example 5 à la place A text reference identifying a field or index into which the title of the newly created tiddler will be stored after it is created
$savedrafttitle. Utilisez ActionCreateTiddlerWidget Example 5 à la place A text reference identifying a field or index into which the draft title associated with the newly created tiddler will be stored after it is created. This is useful when using a sequence of action widgets to create a new tiddler, put it into edit mode, and position it within the list of its parent tag
$timestampSpecifies whether the timestamp(s) of the target tiddler will be updated (modified and modifier, plus created and creator for newly created tiddlers). Can be "yes" (the default) or "no"
$template Depuis : 5.1.22 The title of a template tiddler, that will be used to create a new tiddler
$overwrite Depuis : 5.1.22 If set to "yes", it will overwrite existing tiddlers. Be careful!
{any attributes not starting with $}Each attribute name specifies a field to be created in the new tiddler

Variables

Depuis : 5.2.0 The content of the $action-createtiddler widget is executed after the new tiddler has been created. The title of the newly created tiddler is stored in the variable createTiddler-title.

VariablesDescription
createTiddler-titleThe tittle of the tiddler that has been created. See ActionCreateTiddlerWidget Example 5
createTiddler-draftTitleThis variable only exists to have feature parity with the deprecated parameters. It contains the title of a "draft tiddler"

Examples

Caption for new button: <$edit-text tiddler="$:/state/new-button-caption" tag="input" default=""/>

<$button>
<$action-createtiddler $basetitle="Homemade Button" tags="$:/tags/PageControls" text={{$:/state/new-button-caption}}>
<$action-navigate $to=<<createTiddler-title>>/>
</$action-createtiddler>
Create a new non-functional page control button and open the tiddler
</$button>

Affichera ceci :

Caption for new button:


This example will create "New Tiddler", "New Tiddler 1", " New Tiddler 2" and so on

\define testCreate()
<$action-createtiddler />
\end

<$button actions=<<testCreate>> >
Create Tiddler
</$button>

- Clicking this button, will also open the Right sidebar: Recent tab


This example will use the base title defined in $:/language/DefaultNewTiddlerTitle.

It will overwrite the tiddler, if the button is clicked several times.

\define testCreate()
<$action-createtiddler $basetitle={{$:/language/DefaultNewTiddlerTitle}} $overwrite="yes"/>
\end

<$button actions=<<testCreate>> >
Create Tiddler
</$button>

- Clicking this button, will also open the Right sidebar: Recent tab


This example will uses a base-title and a template: ActionCreateTiddlerWidget Template

It will create: "base", "base 1", "base 2" and so on

\define testCreate()
<$action-createtiddler $basetitle="base" $template="ActionCreateTiddlerWidget Template"/>
\end

<$button actions=<<testCreate>> >
Create Tiddler
</$button>

- Clicking this button will also open the Right sidebar: Recent tab


This example uses a base-title "base" and a template: ActionCreateTiddlerWidget Template.

There will be new fields "aa" and "bb" which are added to the new tiddlers.

\define testCreate()
<$action-createtiddler $basetitle="base" $template="ActionCreateTiddlerWidget Template" aa="new field aa" bb="new field bb" />
\end

<$button actions=<<testCreate>> >
Create Tiddler
</$button>

- Clicking this button will also open the Right sidebar: Recent tab


This example will use the base title defined in ActionCreateTiddlerWidget Template.

It will create: "base", "base 1", "base 2" and so on, and navigate to this tiddler in draft mode.

\define testCreate()
<$action-createtiddler $basetitle="base" $template="ActionCreateTiddlerWidget Template">
	<$action-sendmessage $message="tm-edit-tiddler" $param=<<createTiddler-title>>/>
</$action-createtiddler>
\end

<$button actions=<<testCreate>> >
Create Tiddler
</$button>

- Clicking this button, will also open the Right sidebar: Recent tab

ActionCreateTiddlerWidget Example

 13 novembre 2021 à 1h10

Caption for new button:

ActionCreateTiddlerWidget Example 1

 13 novembre 2021 à 23h04

This example will create "New Tiddler", "New Tiddler 1", " New Tiddler 2" and so on

\define testCreate()
<$action-createtiddler />
\end

<$button actions=<<testCreate>> >
Create Tiddler
</$button>

- Clicking this button, will also open the Right sidebar: Recent tab

ActionCreateTiddlerWidget Example 2

 13 novembre 2021 à 1h10

This example will use the base title defined in $:/language/DefaultNewTiddlerTitle.

It will overwrite the tiddler, if the button is clicked several times.

\define testCreate()
<$action-createtiddler $basetitle={{$:/language/DefaultNewTiddlerTitle}} $overwrite="yes"/>
\end

<$button actions=<<testCreate>> >
Create Tiddler
</$button>

- Clicking this button, will also open the Right sidebar: Recent tab

ActionCreateTiddlerWidget Example 3

 13 novembre 2021 à 1h11

This example will uses a base-title and a template: ActionCreateTiddlerWidget Template

It will create: "base", "base 1", "base 2" and so on

\define testCreate()
<$action-createtiddler $basetitle="base" $template="ActionCreateTiddlerWidget Template"/>
\end

<$button actions=<<testCreate>> >
Create Tiddler
</$button>

- Clicking this button will also open the Right sidebar: Recent tab

ActionCreateTiddlerWidget Example 4

 13 novembre 2021 à 1h11

This example uses a base-title "base" and a template: ActionCreateTiddlerWidget Template.

There will be new fields "aa" and "bb" which are added to the new tiddlers.

\define testCreate()
<$action-createtiddler $basetitle="base" $template="ActionCreateTiddlerWidget Template" aa="new field aa" bb="new field bb" />
\end

<$button actions=<<testCreate>> >
Create Tiddler
</$button>

- Clicking this button will also open the Right sidebar: Recent tab

ActionCreateTiddlerWidget Example 5

 11 janvier 2023 à 22h09

This example will use the base title defined in ActionCreateTiddlerWidget Template.

It will create: "base", "base 1", "base 2" and so on, and navigate to this tiddler in draft mode.

\define testCreate()
<$action-createtiddler $basetitle="base" $template="ActionCreateTiddlerWidget Template">
	<$action-sendmessage $message="tm-edit-tiddler" $param=<<createTiddler-title>>/>
</$action-createtiddler>
\end

<$button actions=<<testCreate>> >
Create Tiddler
</$button>

- Clicking this button, will also open the Right sidebar: Recent tab

ActionCreateTiddlerWidget Template

 16 novembre 2021 à 19h25

This is a tiddler used as a template in: ActionCreateTiddlerWidget Example 3

ActionDeleteFieldWidget

 20 février 2015 à 16h20

Introduction

The action-deletefield widget is an action widget that deletes specified fields of a tiddler. ActionWidgets are used within triggering widgets such as the ButtonWidget.

Content and Attributes

The action-deletefield widget is invisible. Any content within it is ignored.

AttributeDescription
$tiddlerThe title of the tiddler whose fields are to be modified (if not provided defaults to the current tiddler)
$fieldOptional name of a field to delete
{any attributes not starting with $}Each attribute name specifies a field to be deleted. The attribute value is ignored and need not be specified

Examples

Here is an example of a button that deletes the caption and tags fields of the current tiddler:

<$button>
<$action-deletefield caption tags/>
Delete "caption" and "tags"
</$button>

Affichera ceci :

Here is an example of a button that deletes the modified date and tags fields of the tiddler HelloThere:

<$button>
<$action-deletefield $tiddler="HelloThere" modified tags/>
Delete "modified" and "tags" from ~HelloThere
</$button>

Affichera ceci :

Here is an example of a button that uses the optional $field attribute to delete the text field of the tiddler HelloThere:

<$button>
<$action-deletefield $tiddler="HelloThere" $field="text"/>
Delete text from ~HelloThere
</$button>

Affichera ceci :

ActionDeleteTiddlerWidget

 6 novembre 2014 à 17h34

Introduction

The action-deletetiddler widget is an action widget that deletes tiddlers. ActionWidgets are used within triggering widgets such as the ButtonWidget.

There are several differences compared to the WidgetMessage: tm-delete-tiddler:

  • The user is not prompted to confirm the deletion
  • No automatic updating of the story list
  • No special handling of draft tiddlers

Content and Attributes

The action-deletetiddler widget is invisible. Any content within it is ignored.

AttributeDescription
$tiddlerOptional title of the tiddler to be deleted
$filterOptional filter identifying tiddlers to be deleted

Examples

Here is an example of a button that deletes the tiddler HelloThere:

<$button>
<$action-deletetiddler $tiddler="HelloThere"/>
Delete "~HelloThere"
</$button>

Affichera ceci :

Here is an example of a button that deletes all tiddlers tagged TableOfContents:

<$button>
<$action-deletetiddler $filter="[tag[TableOfContents]]"/>
Delete tiddlers tagged "~TableOfContents"
</$button>

Affichera ceci :

ActionListopsWidget

 5 août 2023 à 11h35

Introduction

The action-listops widget is an action widget that manipulates user lists in any field or data index. ActionWidgets are used within triggering widgets such as the ButtonWidget.

Content and Attributes

The action-listops widget is invisible. Any content within it is ignored.

AttributeDescription
$tiddlerThe title of the tiddler whose lists are to be modified (if not provided defaults to the current tiddler)
$fieldThe name of a field to be manipulated as a list (defaults to 'list')
$indexOptional index of a property in a data tiddler index to be manipulated as a list
$filterAn optional filter expression, the output of which will be saved to the field/index being manipulated
$subfilterAn optional subfilter expression, which takes the list being manipulated as input, and saves the modified list back to the field/index being manipulated
$tagsAn optional subfilter expression, which takes the tags field of the target tiddler as input, and saves the modified list of tags back to the tags field

Note on subfilter expressions

If the manipulation depends on the current contents of the list, e.g. when using the toggle operator to toggle the presence of an element, the Filter Run would be prefixed with the + / :and filter run prefix so that it properly receives the list as input.

<$action-listops $subfilter="+[toggle[List Item]]"/>

The above widget will toggle the presence of the element List Item in the field list of the current tiddler, removing or adding the element as necessary.

Similarly, if an element is to always be removed when it is present, the - / :except filter run prefix can be used. Both of the following yield the same result:

<$action-listops $subfilter="-[[List Item]]"/>
<$action-listops $subfilter="+[remove[List Item]]"/>

Without any prefixes, the filter run output is simply dominantly appended to the list.

See also the Examples.

Using $filter or $subfilter

Standalone use of the $subfilter attribute can be replaced by using a (more complicated) $filter attribute value.

For example, the items "abc" and "123" can be appended to the field myfield using the $subfilter attribute:

<$action-listops $field="myfield" $subfilter="abc 123"/>

The same can be achieved using the $filter attribute and prepending the Filter Run [enlist{!!myfield}] to the Filter Expression:

<$action-listops $field="myfield" $filter="[enlist{!!myfield}] abc 123"/>

The short form is more convenient, but the long form is useful for live-debugging complicated $subfilter values using the filter tab of $:/AdvancedSearch. By using $:/AdvancedSearch, the Filter Expression can be tested before using action-listops to modify actual tiddler fields. For this use case, the all[current] portion of the expression needs to be changed to select the proper test tiddler.

Using $tags or $subfilter

Tagging is implemented using a tiddler's 'tags' field, so appending the tags "abc" and "123" using the $tags attribute like this:

<$action-listops $tags="abc 123"/>

is mostly equivalent to using $subfilter along with "tags" for the value of $field:

<$action-listops $field="tags" $subfilter="abc 123"/>

Comparison to ActionSetFieldWidget

In general, ActionSetFieldWidget is better for setting multiple fields at once and for replacing the value of a field, which can also be a list. The ActionListopsWidget is better for modifying a list field based on the existing list and for using a Filter Expression to derive the value of the field.

The ActionSetFieldWidget sets the value of a field using $field and $value attribute pairs or attributes that do not start with a $. A single ActionSetFieldWidget can be used to set any number of fields of a single tiddler.

The ActionListopsWidget replaces or modifies a single field's value using filter expressions.

The following widgets are functionally equivalent:

<$action-setfield $field="myfield" $value="abc 123"/>
<$action-setfield myfield="abc 123"/>
<$action-listops $field="myfield" $filter="abc 123"/>

Note that abc 123 in the first two cases is a literal string that is assigned to the field myfield, but in the third case a filter expression which evaluates to the same string.

Extended Filter Operators

A number of Extended Listops Filters are necessary for the manipulation of lists. These operators have been designed primarily for use in subfilter expressions whereby the modified current list is returned in place of the current list.

Notes on de-duplication

In some cases, there may occur unexpected de-duplication of lists.

Assignments to the list field

When assigning filter results to the list field (default), the generated list is automatically de-duplicated, so

<$action-listops $filter="[[1]] :and[[1]]"/>

will result in the list field of the current tiddler containing the string 1, but not 1 1.

Input to the subfilter expression

The input to the subfilter expression in the $subfilter attribute is also de-duplicated. If you rely on lists containing duplicates, consider using this alternative using the $filter attribute:

<$button>
<$action-listops $field="myfield" $filter="[enlist:raw{!!myfield}] :all[[abc]]" />
Add 'abc' to 'myfield'
</$button>

<$list filter="[enlist:raw{!!myfield}]" template="$:/core/ui/ListItemTemplate" />

Affichera ceci :

The enlist Operator with raw suffix will enlist the list saved in myfield of the current tiddler without de-duplication, while e.g. the list Operator will always de-duplicate. The widget then adds the item abc – whether or not it is already included in the list – and replaces the original list in myfield.

Examples

ActionListopsWidget (Examples)

 5 août 2023 à 11h36

In this example we shall populate and then clear a list in an ordinary field (myfield) of this tiddler (the default).

<$button>
<$action-listops $field="myfield" $filter="efg hlm pqr"/>
Populate 'myfield'
</$button>
<$button>
<$action-listops $field="myfield" $subfilter="abc xyz"/>
Append More Items
</$button>
<$button>
<$action-listops $field="myfield" $subfilter="-abc -hlm"/>
Remove Items
</$button>
<$button>
<$action-listops $field="myfield" $filter="[[]]"/>
Clear 'myfield'
</$button>

<$list filter="[list[!!myfield]]">

</$list>

Affichera ceci :


In this example we shall append and remove items from a list in an ordinary field (myfield) of this tiddler (the default) and sort the resultant list. We shall then remove some of the appended items and sort the resulting list in reverse order.

<$button>
<$action-listops $field="myfield" $subfilter="-efg ijk xyz [[this is a title]] +[sort[]]"/>
Mangle List
</$button>
<$button>
<$action-listops $field="myfield" $subfilter="-xyz -[[this is a title]] +[!sort[]]"/>
Unmangle List
</$button>

<$list filter="[list[!!myfield]]">

</$list>

Affichera ceci :


The following example toggles the tag Examples for the current tiddler.

<$button>
<$action-listops $tags="+[toggle[Examples]]"/>
Toggle 'Examples' tag
</$button>

Affichera ceci :


In this example we shall append a few tags to the 'tags' field of this tiddler (the default). We shall then remove some of the appended tags.

<$button>
<$action-listops $tags="+[append{Days of the Week!!short}] $:/tag1 $:/tag2 $:/tag3"/>
Populate 'tags'
</$button>
<$button>
<$action-listops $tags="+[!remove:2{!!tags}]"/>
Remove Last Two Tags
</$button>
<$button>
<$action-listops $tags="+[!prefix[$:/]]"/>
Remove System Tags
</$button>
<$button>
<$action-listops $tags="-Mon -Tue"/>
Remove Mon and Tue
</$button>
<$button>
<$action-listops $tags="+[prefix[$:/]] ActionWidgets Widgets"/>
Remove User Tags
</$button>
<$button>
<$action-listops $tags="+[[]] ActionWidgets Widgets"/>
Clear Tags
</$button>

<$list filter="[list[!!tags]]">

</$list>

Affichera ceci :

ActionListopsWidget

ActionLogWidget

 20 novembre 2020 à 15h52

Introduction

Depuis : 5.1.23 The action-log widget is an action widget that can be used to output debugging information to the JavaScript console supported by most browsers. This can be useful because otherwise it is difficult to observe what is going on within a sequence of actions.

ActionWidgets are used within triggering widgets such as the ButtonWidget.

For debugging outside of actions see LogWidget

Content and Attributes

The action-log widget is invisible. Any content within it is ignored.

When the actions are invoked, the names and values of all attributes are logged to the JavaScript console. In addition there are optional attributes that can be used:

Optional AttributeDescription
$$filterAll variables matching this filter will also be logged.
$$messageA message to display as the title of the information logged. Useful when several action-log widgets are used in sequence.
$$allSet to "yes" to log all variables in a collapsed table. Note that if there is nothing specified to log, all variables are always logged instead.

A handy tip if an action widget is not behaving as expected is to temporarily change it to an <$action-log> widget so that the attributes can be observed.

Example

Here is an example of logging two variables:

<$action-log myVar=<<myVar>> otherVar=<<otherVar>>/>

To log all variables:

<$action-log />

To log two variables as well as all core variables (which start with tv-):

<$action-log myVar=<<myVar>> other={{!!status}} $$filter="[prefix[tv-]]"/>

ActionNavigateWidget

 20 février 2015 à 16h20

Introduction

The action-navigate widget is an action widget that sends a tm-navigate message back up the widget tree. ActionWidgets are used within triggering widgets such as the ButtonWidget.

Content and Attributes

The action-navigate widget is invisible. Any content within it is ignored.

AttributeDescription
$toThe title of the target tiddler for the navigation (if not provided defaults to the current tiddler
$scrollOptional parameter determining whether the navigation will also cause a scroll to the target tiddler (see below)

Scroll handling

The optional $scroll attribute can be set to "yes" to force scrolling to occur to bring the target tiddler into view. If set to "no" then scrolling does not occur. If the $scroll attribute is omitted then scrolling occurs unless either:

  • the control key is pressed
  • the action was initiated with the middle mouse button (if available)

Note that if navigating to multiple tiddlers at once you should use the same $scroll setting for all of them.

Examples

Here is an example of button that navigates to two different tiddlers at once:

<$button>
<$action-navigate $to="ButtonWidget"/>
<$action-navigate $to="ActionWidgets"/>
Click me!
</$button>

Affichera ceci :

ActionPopupWidget

 31 juillet 2023 à 20h30

Introduction

The action-popup widget is an action widget that triggers the display of a popup defined via a state tiddler, or clears all displayed popups. ActionWidgets are used within triggering widgets such as the ButtonWidget.

Content and Attributes

The action-popup widget is invisible. Any content within it is ignored.

AttributeDescription
$stateThe title of the state tiddler for the popup
$coordsOptional coordinates for the handle to which popup is positioned (see Coordinate Systems for the supported formats)
$floating Depuis : 5.2.0 Optional. Defaults to no. Set to yes to create a popup that must be closed explicitly.

Depuis : 5.1.23 If the $coords attribute is missing or empty then all popups are cancelled.
Depuis : 5.2.4 The $coords attribute supports absolute and relative coordinates. See Coordinate Systems for more information.

Delete the state tiddler for a floating popup to close it.

Examples

Here is an example of button that triggers the "more" button in the sidebar "Tools" tab. You may need to scroll to see the popup

<$button>
<$action-setfield $tiddler="$:/state/tab/sidebar--595412856" $value="$:/core/ui/SideBar/Tools"/>
<$action-popup $state="$:/state/popup/more--810643385" $coords="(0,20,0,0)"/>
Click me!
</$button>

Affichera ceci :

ActionSendMessageWidget

 23 octobre 2021 à 17h01

Introduction

The action-sendmessage widget is an action widget that sends a message back up the widget tree. ActionWidgets are used within triggering widgets such as the ButtonWidget.

Content and Attributes

The action-sendmessage widget is invisible. Any content within it is ignored.

AttributeDescription
$messageThe message to send (eg, WidgetMessage: tm-new-tiddler)
$paramOptional parameter string whose meaning is dependent on the message being sent
$nameOptional name of additional parameter
$valueValue for optional parameter whose name is specified in $name
$names Depuis : 5.2.1 Optional filter evaluating to a list of additional parameter names
$values Depuis : 5.2.1 Optional filter evaluating to a list of parameter values corresponding to the parameters names specified in $names
{any attributes not starting with $}Multiple additional, optional named parameters that are attached to the message

Examples

Here is an example of button that displays both a notification and a wizard, and creates a new tiddler with tags and text:

<$button>
<$action-sendmessage $message="tm-modal" $param="SampleWizard"/>
<$action-sendmessage $message="tm-notify" $param="SampleNotification"/>
<$action-sendmessage $message="tm-new-tiddler" title="This is newly created tiddler" tags="OneTag [[Another Tag]]" text=<<now "Today is DDth, MMM YYYY">>/>
Click me!
</$button>

Affichera ceci :

ActionSetFieldWidget

 6 août 2015 à 18h14

Introduction

The action-setfield widget is an action widget that assigns values to the fields of a tiddler. ActionWidgets are used within triggering widgets such as the ButtonWidget.

Content and Attributes

The action-setfield widget is invisible. Any content within it is ignored.

AttributeDescription
$tiddlerThe title of the tiddler whose fields are to be modified (if not provided defaults to the current tiddler)
$fieldOptional name of a field to be assigned the $value attribute
$indexOptional index of a property in a data tiddler to be assigned the $value attribute
$valueThe value to be assigned to the field or index identified by the $field or $index attribute. If neither is specified then the value is assigned to the text field. If no value is specified, $field or $index will be deleted.
$timestampSpecifies whether the timestamp(s) of the target tiddler will be updated (modified and modifier, plus created and creator for newly created tiddlers). Can be "yes" (the default) or "no"
{any attributes not starting with $}Each attribute name specifies a field to be modified with the attribute value providing the value to assign to the field

Examples

Here is an example of a pair of buttons that open the control panel directly to specified tabs. They work by using action-setfield to set the state tiddler for the control panel tabs.

<$button>
<$action-setfield $tiddler="$:/state/tab-1749438307" text="$:/core/ui/ControlPanel/Appearance"/>
<$action-navigate $to="$:/ControlPanel"/>
Go to Control Panel "Appearance" tab
</$button>

<$button>
<$action-setfield $tiddler="$:/state/tab-1749438307" text="$:/core/ui/ControlPanel/Settings"/>
<$action-navigate $to="$:/ControlPanel"/>
Go to Control Panel "Settings" tab
</$button>

Affichera ceci :

Here is an example of a button that assigns tags and fields to the tiddler HelloThere, and then navigates to it and opens the tiddler info panel on the "Fields" tab:

<$button>
<$action-setfield $tiddler="HelloThere" tags="NewTag [[Another New Tag]]" color="red"/>
<$action-setfield $tiddler="$:/state/popup/tiddler-info--1779055697" text="(568,1443,33,39)"/>
<$action-setfield $tiddler="$:/state/tab--1890574033" text="$:/core/ui/TiddlerInfo/Fields"/>
<$action-navigate $to="HelloThere"/>
Modify ~HelloThere
</$button>

Affichera ceci :

Here is an example of a button that assigns tags and fields to the tiddler HelloThere, and then initiates editing it:

<$button>
<$action-setfield $tiddler="HelloThere" tags="MoreTag [[Further More Tags]]" color="green"/>
<$action-sendmessage $message="tm-edit-tiddler" $param="HelloThere"/>
Edit ~HelloThere
</$button>

Affichera ceci :

Here is an example of a button that opens the control panel directly to the "Appearance" tabs:

<$button>
<$action-setfield $tiddler="$:/state/tab-1749438307" $field="text" $value="$:/core/ui/ControlPanel/Appearance"/>
<$action-navigate $to="$:/ControlPanel"/>
Go to Control Panel "Appearance" tab
</$button>

Affichera ceci :

ActionSetMultipleFieldsWidget

 23 octobre 2021 à 17h01

Introduction

The action-setmultiplefields widget is an action widget that assigns multiple fields to a tiddler where the names and values of the fields are specified as separate filters. ActionWidgets are used within triggering widgets such as the ButtonWidget.

Content and Attributes

The action-setmultiplefields widget is invisible. Any content within it is ignored.

AttributeDescription
$tiddlerOptional title of the tiddler to modify (defaults to the current tiddler)
$fieldsOptional filter evaluating to the names of a list of fields to assign. Either $fields or $indexes must be specified
$indexesOptional filter evaluating to the names of a list of indexes to assign. Either $fields or $indexes must be specified
$valuesFilter evaluating to the values to be assigned to the fields or indexes
$timestampSpecifies whether the timestamp(s) of the target tiddler will be updated (modified and modifier, plus created and creator for newly created tiddlers). Can be "yes" (the default) or "no"

Examples

Here is an example of button that uses the data in Days of the Week to assign fields day-Monday, day-Tuesday etc. to the tiddler "HelloThere":

<$button>
<$action-setmultiplefields $tiddler="HelloThere" $fields="[list[Days of the Week]addprefix[day-]]" $values="[list[Days of the Week]]"/>
Click me!
</$button>

Affichera ceci :

actionTiddler Variable

 18 janvier 2019 à 8h46

The variable actionTiddler is used in subtly different ways by different widgets:

  • Within the actions string of the DroppableWidget, the actionTiddler variable contains the title of the tiddler being dropped.
  • Within the startactions and endactions string of the DroppableWidget, the actionTiddler variable contains a quoted Title List of all of the titles being dragged.

ActionWidget Execution Modes

 16 novembre 2021 à 19h32

Depuis : 5.2.0 The default behaviour of action widgets has some peculiarities that often cause confusion. There is now an improved mode that simplifies how things work, but due to BackwardsCompatibility constraints, it must be explicitly engaged in order to take advantage of it.

The peculiarities relate to the way that the results of previous action widgets are available to subsequent action widgets. By default, action widgets are refreshed before each execution which ensure that they reflect the results of previous actions. However, ordinary widgets are not updated in the same way.

In the following contrived example, a button triggers a series of actions that should result in the string foo being assigned to the text field of the tiddler ActionTestTiddler. However, it fails to produce the expected result because the <$set> widget is not refreshed with the new value of ActionTestTiddler after the execution of the first <$action-setfield> widget.

\define actions()
<$action-setfield $tiddler="ActionTestTiddler" $field="text" $value="FOO"/>
<$set name="newvalue" value={{{ [{ActionTestTiddler}lowercase[]] }}}>
<$action-setfield $tiddler="ActionTestTiddler" $field="text" $value=<<newvalue>>/>
</$set>
\end

Current value of ActionTestTiddler: {{ActionTestTiddler}}

<$button actions=<<actions>>>
Click me
</$button>

Affichera ceci :

Current value of ActionTestTiddler:

The new behaviour avoids these problems by refreshing all widgets before execution, not just action widgets. It is engaged by running the actions in a scope that includes the variable tv-action-refresh-policy set to the value always. (The default value for tv-action-refresh-policy is once).

The assignment can be done within an action string, or via a local variable declaration containing the widget triggering the action.

Do not attempt to set tv-action-refresh-policy globally; the core will only work correctly with the default setting

The example above works as expected with the addition of tv-action-refresh-policy:

\define tv-action-refresh-policy() always

\define actions()
<$action-setfield $tiddler="ActionTestTiddler" $field="text" $value="FOO"/>
<$set name="newvalue" value={{{ [{ActionTestTiddler}lowercase[]] }}}>
<$action-setfield $tiddler="ActionTestTiddler" $field="text" $value=<<newvalue>>/>
</$set>
\end

Current value of ActionTestTiddler: {{ActionTestTiddler}}

<$button actions=<<actions>>>
Click me
</$button>

Affichera ceci :

Current value of ActionTestTiddler:

ActionWidgets

 31 octobre 2021 à 17h29

Action widgets are a special type of widget that have no visual appearance but perform an action when triggered (such as sending a message, navigating to a tiddler, or changing the value of a tiddler). Action widgets are used in association with other widgets that trigger those actions (for example, the ButtonWidget).

The following action widgets are provided:

There are two ways to use action widgets:

  • Placing them within an action string attribute (typically called actions) on the triggering widget (this is the preferred way)
  • Embedding the actions within the triggering widget (an older technique that is now deprecated)

Using action string attributes

The action widgets are passed as a string to the actions attribute of the triggering widget. Usually, it is more convenient to use a macro to assign the action widgets to a variable. For example, here is a button that triggers two actions of sending different messages:

\define my-actions()
<$action-sendmessage $message="tm-home"/>
<$action-sendmessage $message="tm-full-screen"/>
\end

<$button actions=<<my-actions>>>
Click me!
</$button>

Directly embedding action widgets

The action widgets need not be immediate children of their triggering widget, but they must be descendents of it. The actions are performed in sequence. Here is the above example rewritten to use embedding:

<$button>
<$action-sendmessage $message="tm-home"/>
<$action-sendmessage $message="tm-full-screen"/>
Click me!
</$button>

Action Execution Modes

Depuis : 5.2.0 The default behaviour of action widgets has some peculiarities that often cause confusion. There is now an improved mode that simplifies how things work, but due to BackwardsCompatibility constraints, it must be explicitly engaged in order to take advantage of it.

The peculiarities relate to the way that the results of previous action widgets are available to subsequent action widgets. By default, action widgets are refreshed before each execution which ensure that they reflect the results of previous actions. However, ordinary widgets are not updated in the same way.

In the following contrived example, a button triggers a series of actions that should result in the string foo being assigned to the text field of the tiddler ActionTestTiddler. However, it fails to produce the expected result because the <$set> widget is not refreshed with the new value of ActionTestTiddler after the execution of the first <$action-setfield> widget.

\define actions()
<$action-setfield $tiddler="ActionTestTiddler" $field="text" $value="FOO"/>
<$set name="newvalue" value={{{ [{ActionTestTiddler}lowercase[]] }}}>
<$action-setfield $tiddler="ActionTestTiddler" $field="text" $value=<<newvalue>>/>
</$set>
\end

Current value of ActionTestTiddler: {{ActionTestTiddler}}

<$button actions=<<actions>>>
Click me
</$button>

Affichera ceci :

Current value of ActionTestTiddler:

The new behaviour avoids these problems by refreshing all widgets before execution, not just action widgets. It is engaged by running the actions in a scope that includes the variable tv-action-refresh-policy set to the value always. (The default value for tv-action-refresh-policy is once).

The assignment can be done within an action string, or via a local variable declaration containing the widget triggering the action.

Do not attempt to set tv-action-refresh-policy globally; the core will only work correctly with the default setting

The example above works as expected with the addition of tv-action-refresh-policy:

\define tv-action-refresh-policy() always

\define actions()
<$action-setfield $tiddler="ActionTestTiddler" $field="text" $value="FOO"/>
<$set name="newvalue" value={{{ [{ActionTestTiddler}lowercase[]] }}}>
<$action-setfield $tiddler="ActionTestTiddler" $field="text" $value=<<newvalue>>/>
</$set>
\end

Current value of ActionTestTiddler: {{ActionTestTiddler}}

<$button actions=<<actions>>>
Click me
</$button>

Affichera ceci :

Current value of ActionTestTiddler:

add Operator

 11 juin 2019 à 13h50
purposetreating each input title as a number, add to each the numeric value of the operand
inputa selection of titles
parameterN = a number
outputthe input as numbers, but with N added to each one

Learn more about how to use Filters

Depuis : 5.1.20 See Mathematics Operators for an overview.

Examples

add Operator (Examples)

 11 juin 2019 à 13h55

[[23]add[19]]

=1 =2 =3 =4 +[add[4]]

Adding a table of contents to the sidebar

 6 novembre 2018 à 22h41

The standard mechanisms in TiddlyWiki for creating Table-of-Contents are macros known collectively as "toc" macros (click on link to learn more about macros). They use Tagging as their means of creating relationships, so be sure to review the Tagging topic tiddler if tagging is a new concept for you.

A customisable table of contents can be added to the sidebar with the following steps:

  1. Create a tiddler called TableOfContents
  2. Give it the tag $:/tags/SideBar
  3. Set the text to
    
    <div class="tc-table-of-contents">
    
    <<toc-selective-expandable 'TableOfContents'>>
    
    </div>
  4. Add a caption field with the text Contents
  5. Add a list-after field with the text $:/core/ui/SideBar/Open

Add entries to the table of contents by creating tiddlers tagged TableOfContents. An easy way is to choose new here from the tiddler toolbar of the TableOfContents tiddler. (if you don't see the "new here" button, click on the down arrow to see more menu options.)

To create child tiddlers (tiddlers that come below other tiddlers), tag them with the name of the parent tiddler.

Ajouter un bouton suivre sur twitter

 14 juin 2015 à 11h44

Voici une macro qui propose un Bouton suivre sur twitter pour un utilisateur particulier :

\define twitterFollowButton(username)
<iframe allowtransparency="true" frameborder="0" scrolling="no" src="//platform.twitter.com/widgets/follow_button.html?screen_name=$username$"  style="width:300px; height:20px;"></iframe>
\end

La seule modification à la version publiée sur https://dev.twitter.com/docs/follow-button est la suppression des nouvelles lignes.

Notez que l'URL src est passée sans protocole (ie "http" or "https"). De cette façon, cela fonctionne que les sites soient sur un domaine en HTTP ou en HTTPS. Si vous voulez aussi que le bouton Twitter fonctionne en utilisant TiddlyWiki horsligne par une URL "file://", vous devrez ajouter manuellement le protocole. Par exemple:

<iframe allowtransparency="true" frameborder="0" scrolling="no" src="http://platform.twitter.com/widgets/follow_button.html?screen_name=jermolene"  style="width:300px; height:20px;"></iframe>

addprefix Operator

 3 février 2015 à 18h18
purposeextend each input title with a prefix
inputa selection of titles
parameterS = a string of characters
outputthe input, but with S added to the start of each title

Learn more about how to use Filters

addprefix Operator (Examples)

 18 janvier 2015 à 18h31

Cat Garden [[Favourite Armchair]] +[addprefix[My ]]

addsuffix Operator

 3 février 2015 à 18h32
purposeextend each input title with a suffix
inputa selection of titles
parameterS = a string of characters
outputthe input, but with S added to the end of each title

Learn more about how to use Filters

addsuffix Operator (Examples)

 18 janvier 2015 à 18h31

[[London]addsuffix[ Underground]]

Adoptez une politique pour vos titres

 20 juin 2015 à 10h51

À mesure que les structures à l'intérieur de vos documents TiddlyWiki se complexifient, il peut être difficile de conserver la cohérence des titres des tiddlers. Par exemple, faut-il définir les termes au pluriel ou au singulier ? Avec la convention « Camel case » ou en séparant les mots ?

Fixer une politique formelle concernant les titres peuvent aider à réduire les risques de confusion. Par exemple, la politique de titres de ce wiki sont :

Une politique qui inclurait la règle ci-dessous pourrait s'appliquer à vos propres wikis :

  • Utliisation du préfixe $:/_ pour tous les tiddlers système que vous créez pour être sûr de les retrouver en haut de la liste des tiddlers système de la barre latérale.

after Operator

 3 février 2015 à 18h32
purposefind which input title follows a specified one
inputa selection of titles
parameterT = one of those titles
outputthe title that immediately follows T in the input

Learn more about how to use Filters

If T is not present in the input, or is the last title there, then the output is empty.

Examples

after Operator (Examples)

 18 janvier 2015 à 18h31

These examples make use of the Days of the Week tiddler. The Thursday tiddler shows a further example.

[list[Days of the Week]after[Monday]]

[list[Days of the Week]after[Sunday]]

AlertMechanism

 6 juin 2016 à 13h59

Alerts are displayed as yellow boxes overlaying the main TiddlyWiki window. Each one corresponds to a tiddler with the tag $:/tags/Alert. Clicking the delete icon on an alert deletes the corresponding tiddler.

Here's a demo .

Alert tiddlers should have the following fields:

FieldDescription
titleBy default, alert titles have the prefix $:/temp/alerts/
textThe text of the alert message
modifiedDate of the alert (used for ordering the alerts on screen)
componentComponent name associated with the alert
tagsMust include $:/tags/Alert

Alice in Wonderland

 

all Operator

 17 décembre 2021 à 13h57
purposefind all titles of a fundamental category
inputignored, unless the parameter is empty
parameterzero or more categories
outputthe titles that belong to all the specified categories

Learn more about how to use Filters

The parameter specifies zero or more fundamental categories using the following syntax:

missingcurrentorphansshadowstagstiddlers+
CategoryMembersSorted
currentjust the current tiddler
missingall non-existent tiddlers to which there is at least one hard linkno
orphansall tiddlers to which there are no hard linksby title
shadowsall the shadow tiddlers that exist, including any that have been overridden with non-shadow tiddlersno
tagsall the tags in use on non-shadow tiddlersno
tiddlersall the non-shadow tiddlers that existno

If the parameter specifies more than one category, they are processed from left to right. The overall output is initially empty, and each category's output is dominantly appended to it in turn. Unrecognised categories contribute nothing to the output.

As a special case, if the parameter is empty, the output is simply a copy of the input. This can be useful when the parameter is soft.

The is operator is similar, but its scope is restricted to its input.

Examples

all Operator (Examples)

 18 janvier 2015 à 18h31

[all[shadows]]

[all[shadows+tiddlers]]

[all[tiddlers+shadows]]

[all[orphans+missing+current]]

[all[current]]

[all[current]tag[Operator Examples]]

[all[current]tag[Recipes]]

Monday Thursday +[all[]]

allafter Operator

 8 novembre 2015 à 5h15
purposediscard all items except those after the marker
inputa list of items
suffixspecifying a suffix ('include') will include the marker in the output
parametermarker = the list item to be used as a marker
outputall items after the marker

Learn more about how to use Filters

allafter Operator (Examples)

 8 novembre 2015 à 8h05

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]] +[allafter[Wednesday]]

[list[Days of the Week]] +[allafter:include[Wednesday]]

allbefore Operator

 8 novembre 2015 à 5h15
purposediscard all items except those before the marker
inputa list of items
suffixspecifying a suffix ('include') will include the marker in the output
parametermarker = the list item to be used as a marker
outputall items before the marker

Learn more about how to use Filters

allbefore Operator (Examples)

 8 novembre 2015 à 5h14

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]allbefore[Wednesday]]

[list[Days of the Week]allbefore:include[Wednesday]]

A B C D E +[allbefore:include[C]count[]]

AllTiddlers

 21 septembre 2014 à 9h57

Liste des tiddlers non système contenus dans ce wiki :

"A free, open source wiki revisited" by Mark Gibbs, NetworkWorld
"A Thesis Notebook" by Alberto Molina
"ATWiki" by Lamusia Project
"BJTools" by buggyj
"BrainTest - tools for a digital brain" by Danielo Rodriguez
"Briefcase" by Roma Hicks
"Cardo - Task and Project Management Wiki" by David Szego
"CouchDB Adaptor" by William Shallum
"Creating a baby journal with TiddlyWiki 5" from A Penguin in Redmond
"Dracula - a dark palette for TiddlyWiki" by SlyBouhafs & zenorocha
"Drift - Collect, Organise, Grow." by Tony K
"Dropboard" by Reid Gould
"Dynamic Tables" by Jed Carty
"Encrypt single tiddler plugin" by Danielo Rodriguez
"file-backups" Extension for Firefox by pmario
"Filter Examples" by Tobias Beer
"Font Awesome 5 Free SVGs for TiddlyWiki" by morosanuae
"Ghostwriter theme by Rory Gibson" adapted for TW5 by Riz
"Gospel Bubbles" by Rev. David Gifford
"Grok TiddlyWiki" by Soren Bjornstad
"GSD5" by Roma Hicks
"Hacks" by Thomas Elmiger
"Heeg.ru" by sini-Kit
"In My Socks" by Jed Carty
"JD Mobile Layout plugin" by JD
"JD's palettes" by JD
"Lucky Sushi" online shop by sini-Kit
"Mal's Sandbox" by Mal
"MathCell" by Stephen Kimmel
"Microblogging con Tiddlywiki" by Juan
"Moments: A little color won't hurt" by Riz
"Mono theme" by JD
"muritest" by Simon Huber
"Notebook theme" by Nicolas Petton
"Noteself" by Danielo Rodríguez
"Notizen mit TiddlyWiki systemübergreifend nutzen" by Michael Sonntag
"PETTIL - Forth for the Commodore PET" by Charlie Hitselberger
"Reveal.js" by Devin Weaver
"savetiddlers" Extension for Chrome and Firefox by buggyj
"Setting Up a Personal TiddlyWiki Server on OS X" by Kris Johnson
"Shining Ark Using TiddlyWiki" by Helu
"SK Plugins" by Stephen Kimmel
"Slides and Stories" by Jan
"Stroll - a Roam-like experience" by David Gifford
"TB5 - a pocket full of tips" by Tobias Beer
"Tekan: Kanban that stays with you" by Riz
"TiddlyServer" by Matt Lauber
"TiddlyStudy" by Kebi
"TiddlyWiki 5 im Betatest" by besim
"TiddlyWiki for Scholars" by Alberto Molina
"TiddlyWiki guide FR" by Sylvain Naudin
"TiddlyWiki Knowledge Network" by Dmitry Sokolov
"TiddlyWiki Notes" by James Anderson
"TiddlyWiki Posts" by Jeffrey Kishner
"TiddlyWiki Toolmap" by David Gifford
"TiddlyWiki 舞" by Bram Chen
"TiddlyWiki" by Sander de Boer
"TiddlyWiki5 Bourbon" by mkt_memory
"TiddlyWiki5 Forum on Reddit" by Riz
"TiddlyWiki5 Playground" by Ton Gerner
"TiddlyWiki5^2 documenting while learning TiddlyWiki5" by Iannis Zannos
"TW Icons" by morosanuae
"TW5 Magick" by Stephan Hradek
"TW5 Tribal Knowledge" from Scott Kingery
"TW5-TeXZilla" plugin by Joe Renes
"TWeb.at" by Mario Pietsch
"Un wiki sur votre BiblioBox avec TiddlyWiki" from A Penguin in Redmond
"Whitespace, a negative-spacious, webapp-nostalgic theme" by JD
"Wikilabs" by PMario
"Wills Q&D gTD" by Matabele
"X3DOM for TiddlyWiki 5" by Jamal Wills
"デザイン刷新。次の25年を目指すTiddlyWiki" by Moongift
A Gentle Guide to TiddlyWiki
About
abs Operator
abs Operator (Examples)
Ace Editor Plugin by Joerg Plewe
Acknowledgements
acos Operator
acos Operator (Examples)
ActionConfirmWidget
ActionCreateTiddlerWidget
ActionCreateTiddlerWidget Example
ActionCreateTiddlerWidget Example 1
ActionCreateTiddlerWidget Example 2
ActionCreateTiddlerWidget Example 3
ActionCreateTiddlerWidget Example 4
ActionCreateTiddlerWidget Example 5
ActionCreateTiddlerWidget Template
ActionDeleteFieldWidget
ActionDeleteTiddlerWidget
ActionListopsWidget
ActionListopsWidget (Examples)
ActionLogWidget
ActionNavigateWidget
ActionPopupWidget
ActionSendMessageWidget
ActionSetFieldWidget
ActionSetMultipleFieldsWidget
actionTiddler Variable
ActionWidget Execution Modes
ActionWidgets
add Operator
add Operator (Examples)
Adding a table of contents to the sidebar
Adding a Twitter Follow button
addprefix Operator
addprefix Operator (Examples)
addsuffix Operator
addsuffix Operator (Examples)
Adopt a Titles Policy
after Operator
after Operator (Examples)
AlertMechanism
Alice in Wonderland
all Operator
all Operator (Examples)
allafter Operator
allafter Operator (Examples)
allbefore Operator
allbefore Operator (Examples)
AllTiddlers
AlphaReleases
Alternative page layouts
Amazon Web Services Plugin
Anchor Links using HTML
append Operator
append Operator (Examples)
Apple
applypatches Operator
Articles
asin Operator
asin Operator (Examples)
atan Operator
atan Operator (Examples)
atan2 Operator
atan2 Operator (Examples)
Attribute Selectors
Audio
AutoSave
average Operator
average Operator (Examples)
backlinks Operator
backlinks Operator (Examples)
Base64
before Operator
before Operator (Examples)
Behaviour of invoked variables depends on how the variable was declared
Behaviour of variables invoked via filter expression function call
Behaviour of variables invoked via filter operator parameter
Behaviour of variables invoked via normal wikitext
Behaviour of variables invoked via widget attributes
BetaReleases
bf Operator
Block Mode WikiText
Block Mode WikiText (Examples)
Block Quotes in WikiText
Blog Edition
Blurry Lawn.jpg
Brackets
Brownies
BrowserCompatibility
BrowserStorage Plugin
BrowseWidget
BT
BT Acquisition
BuildCommand
Building TiddlyWikiClassic
butfirst Operator
butlast Operator
butlast Operator (Examples)
ButtonWidget
CamelCase
Caruso - Ave Maria
Cascade Filter Run Prefix
Cascade Filter Run Prefix (Examples)
Cascades
Cascading Style Sheets
ceil Operator
ceil Operator (Examples)
changecount Macro
changecount Macro (Examples)
Changes to filters in 5.0.9-beta
charcode Operator
charcode Operator (Examples)
CheckboxWidget
CheckboxWidget (field Mode)
CheckboxWidget (filter Mode)
CheckboxWidget (indeterminate)
CheckboxWidget (index Mode)
CheckboxWidget (listField Mode)
CheckboxWidget (listIndex Mode)
CheckboxWidget (tag Mode)
Chick Peas
Chinese (Simplified) Edition
Chinese (Traditional) Edition
ClearPasswordCommand
Code Blocks in WikiText
Code styles and auto format settings for IDEs
CodeBlockWidget
CodeMirror Plugin
Codes HTML
colour Macro
colour Macro (Examples)
colour-picker Macro
colour-picker Macro (Example 1)
colour-picker Macro (Examples)
ColourPalettes
Comma-Separated Values
Commands
commands Operator
commands Operator (Examples)
CommandsCommand
Community
Community Editions
Community Links Aggregator
Community Palettes
Community Plugins
Community Themes
compare Operator
compare Operator (Examples)
Compose ballad
Concatenating text and variables using macro substitution
Concepts
Conditional Operators
Configurations
Configuring startup tiddlers
Configuring the default TiddlerInfo tab
Consent Banner Plugin
Constructing JSON tiddlers
contains Operator
contains Operator (Examples)
Contents
ContentType
contrastcolour Macro
Contributing
ContributingTemplate
Contributor License Agreement
Contributors
Coordinate Systems
copy-to-clipboard Macro
copy-to-clipboard Macro (Examples)
Copying tiddlers between TiddlyWiki files
Core Icons
Core Macros
Core Variables
cos Operator
cos Operator (Examples)
count Operator
count Operator (Examples)
CountWidget
Creating a custom export format
Creating a splash screen
Creating and editing tiddlers
Creating journal tiddlers
Creating new toolbar buttons
Creating SubStories
csvtiddlers Macro
Current Tiddler
currentTiddler Variable
currentTiddler Variable (Examples)
Custom data-styles
Custom styles by data-tags
Custom styles by data-tiddler-title
Custom styles by user-class
Custom Styles FAQ
Custom tag pill styles
Custom Widgets
Customise TiddlyWiki
Customising search results
Customising Tiddler File Naming
Customising TiddlyWiki's user interface
Customizing EditTemplate field rendering
cycle Operator
cycle Operator (Examples)
D3 Plugin
Dashes in WikiText
Data URI
DataTiddlers
datauri Macro
datauri Macro (Examples)
Date Fields
DateFormat
datepicker plugin based on Pikaday, by kixam
Days of the Week
days Operator
days Operator (Examples)
Debugging Stylesheets
decodebase64 Operator
decodehtml Operator
decodehtml Operator (Examples)
decodeuri Operator
decodeuri Operator (Examples)
decodeuricomponent Operator
decodeuricomponent Operator (Examples)
DefaultTiddlers
Definitions
Definitions in WikiText
DeleteTiddlersCommand
Demo Tiddler List with Custom Story Tiddler Template
Demonstration: keyboard-driven-input Macro
Deprecated - What does it mean
deserialize Operator
deserialize Operator (Examples)
Deserializers
deserializers Operator
deserializers Operator (Examples)
Deutsch (Deutschland) Edition
Deutsch (Österreich) Edition
Developers
Development of TiddlyWiki5
DictionaryTiddlers
DiffTextWidget
Disabling Plugins
Discover TiddlyWiki
Disqus comments plugin by bimlas
divide Operator
divide Operator (Examples)
Document Object Model
Documentation Macros
Documentation pour les traducteurs
Documentation Style Guide
Dominant Append
done
DraftMechanism
Drag and Drop
DragAndDropMechanism
DraggableWidget
DroppableWidget
DropzoneWidget
dumpvariables Macro
dumpvariables Macro (Examples)
duplicateslugs Operator
Dynaview Plugin
each Operator
each Operator (Examples)
eachday Operator
eachday Operator (Examples)
Edición en Castellano
Edit Template Body Cascade
EditBitmapWidget
Editing Tiddlers with Emacs
Editing Tiddlers with Vim
Édition en Français (France)
editiondescription Operator
Editions
editions Operator
EditionsCommand
Editor toolbar
EditTextWidget
EditWidget
else Operator
else Operator (Examples)
Emergency Tiddler Export
Empty Edition
encodebase64 Operator
encodehtml Operator
encodehtml Operator (Examples)
encodeuri Operator
encodeuri Operator (Examples)
encodeuricomponent Operator
encodeuricomponent Operator (Examples)
Encryption
EncryptWidget
enlist Operator
enlist Operator (Examples)
enlist-input Operator
enlist-input Operator (Examples)
EntityWidget
Environment Variables on Node.js
ErrorWidget
escapecss Operator
escapecss Operator (Examples)
escaperegexp Operator
escaperegexp Operator (Examples)
Eucaly's Tiddly World
EventCatcherWidget
Example config-tiddlyweb-host for IIS
Example for tag Macro
Example package.json for IIS
Example Table of Contents: Expandable
Example Table of Contents: Selectively Expandable
Example Table of Contents: Selectively Expandable (custom icons)
Example Table of Contents: Simple
Example Table of Contents: Sorted Expandable
Example Table of Contents: Tabbed External
Example Table of Contents: Tabbed Internal
Example tiddlywiki.info for IIS
Example web.config for IIS
Examples
exponential Operator
exponential Operator (Examples)
Exporter un sous-ensemble de tiddlers
Extended Listops Filters
External Attachments Plugin
ExternalImages
Favorites by Mohammad
Features
Federatial
Federatial.png
FederatialLimited
FetchCommand
Field Editor Cascade
field Operator
field Operator (Examples)
FieldMangler Widget (Examples)
FieldManglerWidget
fields Operator
fields Operator (Examples)
FieldsWidget
FillWidget
Filter Expression
Filter Filter Run Prefix
Filter Filter Run Prefix (Examples)
filter Operator
filter Operator (Examples)
Filter Operators
Filter Parameter
Filter Run
Filter Run Prefix (Examples)
Filter Step
Filter Syntax
Filter Whitespace
Filtered Attribute Values
FilterOperator: fields
FilterOperators
Filters
First
first Operator
first Operator (Examples)
FirstOne
FirstThree
FirstTwo
fixed Operator
fixed Operator (Examples)
floor Operator
floor Operator (Examples)
format Operator
format Operator (Examples)
Formatting in WikiText
Formatting List Results as Tables (no CSS)
Formatting List Results as Tables with CSS - Specified Columns Methods
Formatting List Results as Tables with CSS - Variable Column Method
Formatting text in TiddlyWiki
Forums
Fourth
Friday
Full Edition
Full Text Search Plugin by Rob Hoelz
function Operator
Functions
Funding TiddlyWiki
Funding.png
Future
Future Proof
Generating Static Sites with TiddlyWiki
GenesisWidget
get Operator
get Operator (Examples)
Get the Ring
getindex Operator
getindex Operator (Examples)
Getting Started Video
GettingStarted
GettingStarted - Android
GettingStarted - Chrome
GettingStarted - Firefox
GettingStarted - Internet Explorer
GettingStarted - iOS
GettingStarted - Node.js
GettingStarted - Online
GettingStarted - Safari
getvariable Operator
getvariable Operator (Examples)
Git
GitHub
GitHub Saver Tutorial by Mohammad
GitLab
Glossaire en-GB -> fr-FR
Go to Mordor
Grok TiddlyWiki Banner
GroupedLists
Growth of TiddlyWiki
GuerillaWiki
Hamlet
Hard and Soft Links
Hard Linebreaks in WikiText
Hard Linebreaks with CSS
Hard Linebreaks with CSS - Example
has Operator
has Operator (Examples)
haschanged Operator
Headings in WikiText
Height of text editor
HelloThere
HelloThumbnail
HelloThumbnail - Classic
HelloThumbnail - Developers
HelloThumbnail - Federatial
HelloThumbnail - Funding
HelloThumbnail - Gentle Guide
HelloThumbnail - Grok TiddlyWiki
HelloThumbnail - HelpingTiddlyWiki
HelloThumbnail - Introduction Video
HelloThumbnail - Latest Version
HelloThumbnail - Marketplace
HelloThumbnail - Newsletter
HelloThumbnail - TiddlyWikiLinks
HelpCommand
HelpingTiddlyWiki
Hidden Setting: Default Tiddler Icon
Hidden Setting: Disable Drag and Drop
Hidden Setting: Disable Lazy Loading
Hidden Setting: Enable File Import in Editor
Hidden Setting: Filename for Save Wiki Button
Hidden Setting: HTML Parser Sandbox
Hidden Setting: More Tabs Horizontal
Hidden Setting: Navigate on Enter
Hidden Setting: New-Image Type
Hidden Setting: Retain Story ordering
Hidden Setting: Scroll Top Adjustment
Hidden Setting: Search AutoFocus
Hidden Setting: Search Minimum Length
Hidden Setting: Show Edit Preview per Tiddler
Hidden Setting: Sync Logging
Hidden Setting: Sync Polling Interval
Hidden Setting: Sync System Tiddlers From Server
Hidden Setting: Tab Index for Edit-Inputs
Hidden Setting: Tags Minimum Length
Hidden Setting: Template for Save Wiki Button
Hidden Setting: Typing Refresh Delay
Hidden Setting: ViewTemplate and EditTemplate
Hidden Settings
Hidden Settings: Import Content Types for Editor
Highlight Plugin
History of TiddlyWiki
HistoryMechanism
Horizontal Rules in WikiText
How to add a banner for GitHub contributions
How to add a new tab to the sidebar
How to apply custom styles
How to apply custom styles by tag
How to build a TiddlyWiki5 from individual tiddlers
How to change the sort order of sub-branches in a TOC macro
How to create a custom story tiddler template
How to create a custom tiddler colour rule
How to create a custom tiddler icon rule
How to create dynamic editor toolbar buttons
How to create keyboard shortcuts
How to Customize TiddlyDesktop
How to embed PDF and other documents
How to export tiddlers
How to hide the author's and other fields with CSS
How to put the last modification date in a banner
How to remove stop words
How to turn off camel case linking
How to update TiddlyWiki to the latest version
How to widen tiddlers (aka storyriver)
HTML Block Elements
HTML Entities
HTML in WikiText
HTML Links in WikiText
HyperText Markup Language
Icon Gallery
image-picker Macro
image-picker Macro (Example 1)
image-picker Macro (Example 2)
image-picker Macro (Examples)
ImageGallery Example
Images in WikiText
ImageWidget
ImportCommand
Importing Tiddlers
ImportVariablesWidget
Improving TiddlyWiki Documentation
IndexedDB Plugin by Andreas Abeck
indexes Operator
indexes Operator (Examples)
InfoMechanism
InfoPanel
Informations pour les traducteurs
InitCommand
Inline Mode WikiText
Innerwiki Plugin
Insert link
Insert picture
insertafter Operator
insertafter Operator (Examples)
insertbefore Operator
insertbefore Operator (Examples)
Installing a plugin from the plugin library
Installing custom plugins on Node.js
Installing official plugins on Node.js
Installing TiddlyWiki on Microsoft Internet Information Server
Installing TiddlyWiki on Node.js
Installing TiddlyWiki Prerelease on Node.js
Instruction Tiddlers
Interactive Git Documentation by Devin Weaver
Intersection Filter Run Prefix
Intersection Filter Run Prefix (Examples)
Introducing TiddlyDesktop Video
Introduction to filter notation
Introduction to filters notation
Introduction to Lists
Introduction Video
Introduction Video Thumbnail.jpg
is Operator
is Operator (Examples)
Japanese (Japan) Edition
JavaScript
JavaScript Object Notation
JeremyRuston
Jermolene
join Operator
join Operator (Examples)
JSON in TiddlyWiki
Json Mangler plugin by Joshua Fontany
jsonextract Operator
jsonget Operator
jsonindexes Operator
jsonstringify Operator
jsontiddler Macro
JSONTiddlers
jsontiddlers Macro
JSONTiddlerWidget
jsontype Operator
JSZip Plugin
KaTeX Plugin
kdi-demo-configtid
Keyboard Codes
Keyboard Shortcut Descriptor
Keyboard Shortcut Tiddler
keyboard-driven-input Macro
KeyboardShortcuts
KeyboardWidget
Kill the Dragon
Kin filter operator by bimlas
Kookma Plugin Library by Mohammad
Korean (Korea Republic) Edition
Language Icon: ca-ES
Language Icon: cs-CZ
Language Icon: da-DK
Language Icon: de-AT
Language Icon: de-DE
Language Icon: el-GR
Language Icon: en-US
Language Icon: es-ES
Language Icon: fr-FR
Language Icon: hi-IN
Language Icon: ia-IA
Language Icon: it-IT
Language Icon: ja-JP
Language Icon: ko-KR
Language Icon: nl-NL
Language Icon: pa-IN
Language Icon: pt-PT
Language Icon: ru-RU
Language Icon: sk-SK
Language Icon: sv-SE
Language Icon: zh-Hans
Language Icon: zh-Hant
LanguageGallery Example
Languages
last Operator
last Operator (Examples)
Latest
Launch of TiddlyWiki
LazyLoading
Leaflet maps plugin by Sylvain Comte
Learning
Leaving BT
length Operator
length Operator (Examples)
LetWidget
levenshtein Operator
levenshtein Operator (Examples)
Lexique
License
limit Operator
limit Operator (Examples)
lingo Macro
lingo Macro (Examples)
LinkCatcherWidget
Linking in WikiText
links Operator
links Operator (Examples)
LinkWidget
list Operator
list Operator (Examples)
list-links Macro
list-links Macro (Examples)
list-links-draggable Macro
list-links-draggable Macro (Examples)
list-tagged-draggable Macro
list-tagged-draggable Macro (Examples)
list-thumbnails Macro
list-thumbnails Macro (Examples)
listed Operator
listed Operator (Examples)
ListenCommand
ListField
ListopsData
Lists in WikiText
ListWidget
Literal Attribute Values
LoadCommand
Locator plugin by bimlas
log Operator
log Operator (Examples)
LogWidget
lookup Operator
lookup Operator (Examples)
lowercase Operator
lowercase Operator (Examples)
Macro Call Syntax
Macro Calls
Macro Calls in WikiText
Macro Calls in WikiText (Examples)
Macro Definition Syntax
Macro Definitions
Macro Definitions in WikiText
Macro Parameter Handling
Macro Pitfalls
Macro Syntax
MacroCallWidget
Macros
Macros in WikiText
Make the beds
makedatauri Macro
makedatauri Macro (Examples)
MakeLibraryCommand
makepatches and applypatches Operator (Examples)
makepatches Operator
Making a custom journal button
Making curved text with SVG
Manually installing a plugin
Map Filter Run Prefix
Map Filter Run Prefix (Examples)
Markdown
Markdown Plugin
match Operator
match Operator (Examples)
Mathematics Operators
MathJax Plugin by Martin Kantor
MathML
max Operator
max Operator (Examples)
maxall Operator
maxall Operator (Examples)
Mechanisms
median Operator
median Operator (Examples)
Meetups
MessageCatcherWidget
MessageHandlerWidgets
Messages
Milk
min Operator
min Operator (Examples)
minall Operator
minall Operator (Examples)
minlength Operator
minlength Operator (Examples)
Mobile Drag And Drop Shim Plugin
Modals
modifier Variable
Modifying JSON tiddlers
moduleproperty Operator
moduleproperty Operator (Examples)
Modules
modules Operator
modules Operator (Examples)
ModuleType
moduletypes Operator
moduletypes Operator (Examples)
Monday
More actions
Motovun Jack.ascii
Motovun Jack.jpg
Motovun Jack.pdf
Motovun Jack.svg
move Operator
move Operator (Examples)
multiply Operator
multiply Operator (Examples)
MultiTiddlerFiles
MultiTiddlerFileSyntax
Named Filter Run Prefix
NamedCommandParameters
namespace Variable
Naming of System Tiddlers
Navigating between open tiddlers
NavigatorWidget
negate Operator
negate Operator (Examples)
New Release Banner
Newnham Horizon.jpg
next Operator
next Operator (Examples)
node-webkit
Node.js
Notes for upgrading to 5.0.11-beta
Notes for upgrading to 5.0.8-beta
Notifications
now Macro
now Macro (Examples)
NowMacro
nsort Operator
nsort Operator (Examples)
nsortcs Operator
nsortcs Operator (Examples)
nth Operator
nth Operator (Examples)
NW.js
Obadiah TOC
OfficialPlugins
Open Collective
Open Collective Logo
OpenSource
Order of Tagged Tiddlers
order Operator
Origins of Tiddlywiki
Osmosoft
Osmosoft and TiddlySpace
Other Resources
OutputCommand
OXTWIG
pad Operator
pad Operator (Examples)
Page and tiddler layout customisation
Paragraphs in WikiText
ParametersWidget
ParametersWidget (Examples)
PasswordCommand
PasswordWidget
Percent Encoding
Performance
Performance Instrumentation
PerlinLight.jpg
PermaLinks
PESpot Lesson Planner by Patrick Detzner
Philosophy of Tiddlers
Pinstripe.gif
Places where the parser ignores WikiText
Platforms
Plugin Dependencies
Plugin Editions
Plugin Fields
Plugin Information Tiddlers
Plugin Ordering
Plugin Types
PluginFolders
PluginMechanism
Plugins
Plugins by TheDiveO
PluginsCS
plugintiddlers Operator
plugintiddlers Operator (Examples)
PopupMechanism
power Operator
power Operator (Examples)
Pragma
Pragma: \define
Pragma: \function
Pragma: \import
Pragma: \parameters
Pragma: \parsermode
Pragma: \procedure
Pragma: \rules
Pragma: \whitespace
Pragma: \widget
Pragmas
precision Operator
precision Operator (Examples)
prefix Operator
prefix Operator (Examples)
prepend Operator
prepend Operator (Examples)
Preserving open tiddlers at startup
previous Operator
previous Operator (Examples)
Procedure Calls
Procedure Definitions
Procedure Parameter Handling
Procedures
Product Hunt Link
product Operator
product Operator (Examples)
ProductHunt-Badge.svg
Projectify by Nicolas Petton
putafter Operator
putafter Operator (Examples)
putbefore Operator
putbefore Operator (Examples)
putfirst Operator
putfirst Operator (Examples)
putlast Operator
putlast Operator (Examples)
Q: How can I style a tiddler if it has "this" AND "that" tag?
Q: How can I style a tiddler if it has "this" OR "that" tag?
Q: How can I use a custom field to style a tiddler?
Q: Is there a way to create dynamic stylesheets?
Q: What if a tiddler has no tags?
qualify Macro
qualify Macro (Examples)
QualifyWidget
Quick Start
Quick Start: Desktop
Quick Start: DIY
Quick Start: Tiddlyhost
Quick Start: Xememex
Quine
RadioWidget
RadioWidget Example
RadioWidget ExampleTemplate
Railroad Diagrams
Railroad Plugin
range Operator
RangeWidget
RangeWidget Example
rboue's plugins for TiddlyWiki
Reading data from JSON tiddlers
ReadMe
ReadMeBinFolder
Reddit Logo
Reduce Filter Run Prefix
Reduce Filter Run Prefix (Examples)
reduce Operator
reduce Operator (Examples)
Reference
Reference Tiddlers
Refnotes by Mohammad
RefreshMechanism
RefreshThrottling
RegExp in Tiddlywiki by Mohammad
regexp Operator
regexp Operator (Examples)
Release 5.0.0-alpha.11
Release 5.0.0-alpha.12
Release 5.0.0-alpha.13
Release 5.0.0-alpha.14
Release 5.0.0-alpha.15
Release 5.0.0-alpha.16
Release 5.0.0-alpha.17
Release 5.0.1-alpha
Release 5.0.10-beta
Release 5.0.11-beta
Release 5.0.12-beta
Release 5.0.13-beta
Release 5.0.14-beta
Release 5.0.15-beta
Release 5.0.16-beta
Release 5.0.17-beta
Release 5.0.18-beta
Release 5.0.2-beta
Release 5.0.3-beta
Release 5.0.4-beta
Release 5.0.5-beta
Release 5.0.6-beta
Release 5.0.7-beta
Release 5.0.8-beta
Release 5.0.9-beta
Release 5.1.0
Release 5.1.1
Release 5.1.10
Release 5.1.11
Release 5.1.12
Release 5.1.13
Release 5.1.14
Release 5.1.15
Release 5.1.16
Release 5.1.17
Release 5.1.18
Release 5.1.19
Release 5.1.2
Release 5.1.20
Release 5.1.21
Release 5.1.22
Release 5.1.23
Release 5.1.3
Release 5.1.4
Release 5.1.5
Release 5.1.6
Release 5.1.7
Release 5.1.8
Release 5.1.9
Release 5.2.0
Release 5.2.1
Release 5.2.2
Release 5.2.3
Release 5.2.4
Release 5.2.5
Release 5.2.6
Release 5.2.7
Release 5.3.0
Release 5.3.1
Releases
ReleaseTemplate
remainder Operator
remainder Operator (Examples)
remove Operator
remove Operator (Examples)
removeprefix Operator
removeprefix Operator (Examples)
removesuffix Operator
removesuffix Operator (Examples)
RenderCommand
RenderTiddlerCommand
RenderTiddlersCommand
replace Operator
replace Operator (Examples)
ReportingBugs
resolvepath Macro
resolvepath Macro (Examples)
Resources
rest Operator
rest Operator (Examples)
Résumé Builder Edition
RevealWidget
reverse Operator
reverse Operator (Examples)
Rice Pudding
RoadMap
round Operator
round Operator (Examples)
SafeMode
Sainte Anastasie.png
sameday Operator
sameday Operator (Examples)
Sample Headings 1,2,3
Sample Headings 3,4,5
Sample Headings 4,5,6
Sample Tiddler Template
SampleModal
SampleNotification
SampleTabFour
SampleTabOne
SampleTabThree
SampleTabTwo
sampletag1
sampletag2
SampleTemplate
SampleTiddlerFirst
SampleTiddlerSecond
SampleTiddlerThird
SampleWindowTemplate
SampleWizard
SampleWizard2
Saturday
SaveCommand
SaveTiddlerCommand
SaveTiddlersCommand
SaveTrail Plugin
SaveWikiFolderCommand
Saving
Saving on a PHP Server
Saving on Android
Saving on Browser with File System Access API
Saving on Browser with TiddlyStow
Saving on iPad/iPhone
Saving on TiddlyDesktop
Saving on TiddlyHost
Saving on TiddlySpot
Saving on TidGi Desktop
Saving to a Git service
Saving via a Minimal Ruby Server
Saving via a Minimal Web Server
Saving via WebDAV
Saving with Polly
Saving with the HTML5 fallback saver
Saving with the HTML5 saver
Saving with TiddlyFox
Saving with TiddlyFox on Android
Saving with TiddlyIE
Saving with TW Receiver
SavingMechanism
Scalability
Scripts for TiddlyWiki on Node.js
ScrollableWidget
search Operator
search Operator (Examples)
search-replace Operator
search-replace Operator (Examples)
Searching in TiddlyWiki
Searchwikis by Mohammad
Second
SecondOne
SecondThree
SecondThreeOne
SecondThreeThree
SecondThreeTwo
SecondTwo
SeeAlso by Matias Goldman
Selection Constructors
SelectWidget
Semantic Colors by Mohammad
sentencecase Operator
sentencecase Operator (Examples)
ServerCommand
Serving TW5 from Android
SetFieldCommand
SetMultipleVariablesWidget
Setting a favicon
Setting a page background image
SetVariableWidget
SetWidget
sha256 Operator
shadowsource Operator
shadowsource Operator (Examples)
ShadowTiddlers
Share Plugin
Sharing a TiddlyWiki on Dropbox
Sharing your tiddlers with others
Shiraz by Mohammad
sign Operator
sign Operator (Examples)
Signing the Contributor License Agreement
Simple ways to write protect tiddlers
Simple Zork-like Game by Jed Carty
sin Operator
sin Operator (Examples)
SingleFileApplication
SinglePageApplication
Slider by Mohammad
SlotWidget
slugify Operator
Some of the things you can do with TiddlyWiki
Sort Filter Run Prefix
Sort Filter Run Prefix (Examples)
sort Operator
sort Operator (Examples)
sortan Operator
sortan Operator (Examples)
sortby Operator
sortby Operator (Examples)
sortcs Operator
sortcs Operator (Examples)
sortsub Operator
sortsub Operator (Examples)
Spelling
split Operator
split Operator (Examples)
splitbefore Operator
splitbefore Operator (Examples)
splitregexp Operator
splitregexp Operator (Examples)
standard-deviation Operator
standard-deviation Operator (Examples)
Stanford JavaScript Crypto Library
StartupActions
StateMechanism
Story River
Story Tiddler Template
Story Tiddler Template Cascade
storyTiddler Variable
storyTiddler Variable (Examples)
storyviews Operator
storyviews Operator (Examples)
stringify Operator
stringify Operator (Examples)
Structuring TiddlyWiki
Styles and Classes in WikiText
Stylesheet Macros
subfilter Operator
subfilter Operator (Examples)
substitute Operator
substitute Operator (Examples)
Substituted Attribute Values
subtiddlerfields Operator
subtiddlerfields Operator (Examples)
subtract Operator
subtract Operator (Examples)
suffix Operator
suffix Operator (Examples)
sum Operator
sum Operator (Examples)
Sunday
SystemTag: $:/tags/AboveStory
SystemTag: $:/tags/AdvancedSearch
SystemTag: $:/tags/AdvancedSearch/FilterButton
SystemTag: $:/tags/Alert
SystemTag: $:/tags/BelowStory
SystemTag: $:/tags/ClassFilters/PageTemplate
SystemTag: $:/tags/ClassFilters/TiddlerTemplate
SystemTag: $:/tags/ControlPanel
SystemTag: $:/tags/ControlPanel/Advanced
SystemTag: $:/tags/ControlPanel/Appearance
SystemTag: $:/tags/ControlPanel/Info
SystemTag: $:/tags/ControlPanel/Plugins
SystemTag: $:/tags/ControlPanel/Saving
SystemTag: $:/tags/ControlPanel/Settings
SystemTag: $:/tags/ControlPanel/Toolbars
SystemTag: $:/tags/EditorToolbar
SystemTag: $:/tags/EditorTools
SystemTag: $:/tags/EditPreview
SystemTag: $:/tags/EditTemplate
SystemTag: $:/tags/EditToolbar
SystemTag: $:/tags/Exporter
SystemTag: $:/tags/Filter
SystemTag: $:/tags/Global
SystemTag: $:/tags/Global/View
SystemTag: $:/tags/Global/View/Body
SystemTag: $:/tags/Image
SystemTag: $:/tags/ImportPreview
SystemTag: $:/tags/KeyboardShortcut
SystemTag: $:/tags/Layout
SystemTag: $:/tags/Macro
SystemTag: $:/tags/Macro/View
SystemTag: $:/tags/Macro/View/Body
SystemTag: $:/tags/Manager/ItemMain
SystemTag: $:/tags/Manager/ItemSidebar
SystemTag: $:/tags/MoreSideBar
SystemTag: $:/tags/MoreSideBar/Plugins
SystemTag: $:/tags/PageControls
SystemTag: $:/tags/PageTemplate
SystemTag: $:/tags/Palette
SystemTag: $:/tags/PluginLibrary
SystemTag: $:/tags/RawMarkup
SystemTag: $:/tags/RawMarkupWikified
SystemTag: $:/tags/RawMarkupWikified/BottomBody
SystemTag: $:/tags/RawMarkupWikified/TopBody
SystemTag: $:/tags/RawMarkupWikified/TopHead
SystemTag: $:/tags/RawStaticContent
SystemTag: $:/tags/RemoteAssetInfo
SystemTag: $:/tags/SearchResults
SystemTag: $:/tags/ServerConnection
SystemTag: $:/tags/SideBar
SystemTag: $:/tags/SideBarSegment
SystemTag: $:/tags/StartupAction
SystemTag: $:/tags/StartupAction/Browser
SystemTag: $:/tags/StartupAction/Node
SystemTag: $:/tags/Stylesheet
SystemTag: $:/tags/TagDropdown
SystemTag: $:/tags/TextEditor/Snippet
SystemTag: $:/tags/TiddlerInfo
SystemTag: $:/tags/TiddlerInfo/Advanced
SystemTag: $:/tags/TiddlerInfoSegment
SystemTag: $:/tags/ToolbarButtonStyle
SystemTag: $:/tags/TopLeftBar
SystemTag: $:/tags/TopRightBar
SystemTag: $:/tags/ViewTemplate
SystemTag: $:/tags/ViewTemplate/Subtitle
SystemTag: $:/tags/ViewToolbar
SystemTags
SystemTiddlers
TabbedExampleType
Table Classes, Captions, Headers and Footers
table-example
Table-of-Contents Macros
Table-of-Contents Macros (Examples)
TableOfContents
TableOfContentsMacro
TableOfContentsMacro Expandable Example
Tables in WikiText
Tables in WikiText CSS Utility Classes
tabs Macro
tabs Macro (Examples)
TabsMacro
tag Macro
tag Macro (Examples)
tag Operator
tag Operator (Examples)
tag-picker Macro
tag-pill Macro
Tagging
tagging Operator
tagging Operator (Examples)
tags Operator
tags Operator (Examples)
TagTiddlers
tan Operator
tan Operator (Examples)
task
TaskManagementExample
TaskManagementExample (Draggable)
TaskManagementExampleDraggableTemplate
Technical Prose Style
TemplateTiddlers
Ten reasons to switch to TiddlyWiki
Testimonials - Joe Armstrong
Testimonials - Network World
Testimonials - Product Hunt
Text preview
Text-Slicer Edition
TextReference
TextWidget
The Extended Listops Filters
The First Rule of Using TiddlyWiki
Then Filter Run Prefix
Then Filter Run Prefix (Examples)
then Operator
then Operator (Examples)
Third
ThirdOne
ThirdThree
ThirdTwo
thisTiddler Variable
thisTiddler Variable (Examples)
thumbnail Macro
thumbnail Macro (Examples)
Thursday
Tiddler Colour Cascade
Tiddler Commander by Mohammad
Tiddler Fishes.svg
Tiddler Icon Cascade
Tiddler Poster.png
Tiddler Structure
Tiddler Title Policy
TiddlerFields
TiddlerFiles
TiddlerLinks
Tiddlers
TiddlerWidget
TiddlyBucket - Save to AWS or Google Storage
TiddlyChrome by Arlen Beiler
TiddlyClip by buggyjay
TiddlyDesktop
TiddlyDesktop Releases
TiddlyDrive Add-on for Google Drive by Joshua Stubbs
TiddlyFox
TiddlyFox Apocalypse
TiddlyFox Apocalypse.png
Tiddlyhost
Tiddlyhost Logo
TiddlyIE
TiddlyMap Plugin by Felix Küppers
TiddlyMemo by oflg
TiddlyServer by Arlen Beiler
Tiddlyshow by Mohammad
TiddlySpace
TiddlyWeb
TiddlyWeb JSON tiddler format
TiddlyWiki
TiddlyWiki Camp Paris
TiddlyWiki Classic.png
TiddlyWiki Cloud
TiddlyWiki European Meetup 2016
TiddlyWiki European Meetup 2017
TiddlyWiki extensions for Sublime Text 3 by roma0104
TiddlyWiki extensions for ViM
TiddlyWiki Hangouts
TiddlyWiki in the Sky for TiddlyWeb
TiddlyWiki Marketplace
TiddlyWiki Marketplace Banner
TiddlyWiki Newsletter
TiddlyWiki Newsletter Badge.png
TiddlyWiki on Firefox for Android Video
TiddlyWiki on Node.js
TiddlyWiki Releases
TiddlyWiki Video Tutorials by Francis Meetze
tiddlywiki.files Files
tiddlywiki.info Files
TiddlyWiki.mp3
TiddlyWiki2ReadMe
TiddlyWiki5
TiddlyWiki5 Versioning
TiddlyWikiClassic
TiddlyWikiFiles
TiddlyWikiFolders
TiddlyWikiLinks
timeline Macro
timeline Macro (Examples)
Timelines by Mohammad
Timimi: WebExtension and Native Host by Riz
Tinka by Andreas Hahn
Tirets
Title List
title Operator
title Operator (Examples)
Title Selection
titlecase Operator
titlecase Operator (Examples)
Todolist by Mohammad
toggle Operator
toggle Operator (Examples)
Transcluded Attribute Values
TranscludeWidget
Transclusion
Transclusion and Substitution
Transclusion Basic Usage
Transclusion in WikiText
transclusion Variable
transclusion Variable (Examples)
Transclusion with Templates
Translate TiddlyWiki into your language
TranslationMechanism
translink Macro
translink Macro (Examples)
Trashbin by Mohammad
tree Macro
tree Macro (Examples)
tree-macro-example-car
tree-macro-example-car-boot
tree-macro-example-car-boot-handle
tree-macro-example-car-boot-lock
tree-macro-example-car-roof
tree-macro-example-car-roof-aerial
tree-macro-example-car-roof-rails
tree-macro-example-house
tree-macro-example-house-attic
tree-macro-example-house-attic-roof
tree-macro-example-house-attic-window
tree-macro-example-house-garden
tree-macro-example-house-garden-lawn
tree-macro-example-house-garden-shed
tree-macro-example-house-kitchen
tree-macro-example-house-kitchen-sink
tree-macro-example-house-kitchen-table
tree-macro-example-house-kitchen-window
TriggeringWidgets
trim Operator
trim Operator (Examples)
TriTarget.org by Devin Weaver
trunc Operator
trunc Operator (Examples)
Tuesday
Tutorials
tv-adjust-heading-level Variable
tv-adjust-heading-level Variable (Examples)
tv-auto-open-on-import Variable
tv-config-static Variable
tv-config-toolbar-class Variable
tv-config-toolbar-class Variable (Examples)
tv-config-toolbar-icons Variable
tv-config-toolbar-icons Variable (Examples)
tv-config-toolbar-text Variable
tv-config-toolbar-text Variable (Examples)
tv-filter-export-link Variable
tv-get-export-image-link Variable
tv-get-export-image-link Variable (Examples)
tv-get-export-link Variable
tv-get-export-path Variable
tv-history-list Variable
tv-show-missing-links Variable
tv-story-list Variable
tv-tiddler-preview Variable
tv-wikilink-template Variable
tv-wikilink-tooltip Variable
tv-wikilink-tooltip Variable (Examples)
tv-wikilinks Variable
tv-wikilinks Variable (Examples)
TW-Scripts by Mohammad
TW2Parser Plugin
TW5-firebase: TiddlyWiki5 for Google Firebase by Peter Neumark
TW5-SingleExecutable by Jed Carty
TWaddle by Matias Goldman
TWCommunitySearch
TWEUM Thumbnail.jpg
Twexe: Single File Tiddlywiki5 executable
Twitter Plugin
twproxy by Steve Gattuso
Typed Blocks in WikiText
Typography
Uninstalling a plugin
Uninstalling a plugin with Node.js
unique Operator
unique Operator (Examples)
UnpackPluginCommand
untagged Operator
untagged Operator (Examples)
untrunc Operator
untrunc Operator (Examples)
unusedtitle Macro
unusedtitle Macro (Examples 1)
unusedtitle Macro (Examples)
UpgradeMechanism
Upgrading
Upgrading TiddlyWiki on Node.js
uppercase Operator
uppercase Operator (Examples)
URI
Using a custom path prefix with the client-server edition
Using Excise
Using HTTPS
Using links to navigate between tiddlers
Using Stamp
Using Stylesheets
Using SVG
Using the external JavaScript template
Using the integrated static file server
Using the read-only single tiddler view
Using TiddlyWiki for GitHub project documentation
Using TiddlyWiki on Node.js
UsingSVG
Utility by Mohammad
Utility Classes
Variable Attribute Values
Variable Usage
Variables
Variables in WikiText
variables Operator
variables Operator (Examples)
variance Operator
variance Operator (Examples)
VarsWidget
VerboseCommand
version Macro
version Macro (Examples)
VersionCommand
Videos
View Template Body Cascade
View Template Title Cascade
ViewWidget
vis.js Timeline by emkay, revived by kixam
Visible Transclusions
Web Developer Tools
WebServer
WebServer Anonymous Access
WebServer API
WebServer API: Delete Tiddler
WebServer API: Force Basic Authentication Login
WebServer API: Get All Tiddlers
WebServer API: Get Favicon
WebServer API: Get File
WebServer API: Get Rendered Tiddler
WebServer API: Get Server Status
WebServer API: Get Tiddler
WebServer API: Get Wiki
WebServer API: Put Tiddler
WebServer Authentication
WebServer Authorization
WebServer Basic Authentication
WebServer Guides
WebServer Header Authentication
WebServer Parameter: admin
WebServer Parameter: anon-username
WebServer Parameter: authenticated-user-header
WebServer Parameter: credentials
WebServer Parameter: csrf-disable
WebServer Parameter: debug-level
WebServer Parameter: host
WebServer Parameter: password
WebServer Parameter: path-prefix
WebServer Parameter: port
WebServer Parameter: readers
WebServer Parameter: required-plugins
WebServer Parameter: root-render-type
WebServer Parameter: root-serve-type
WebServer Parameter: root-tiddler
WebServer Parameter: system-tiddler-render-template
WebServer Parameter: system-tiddler-render-type
WebServer Parameter: tiddler-render-template
WebServer Parameter: tiddler-render-type
WebServer Parameter: tls-cert
WebServer Parameter: tls-key
WebServer Parameter: tls-passphrase
WebServer Parameter: username
WebServer Parameter: writers
WebServer Parameters
Wednesday
What happened to the original TiddlyWiki?
Widdly by Opennota
Widget Attributes
Widget Documentation Style Guide
WidgetMessage: tm-add-field
WidgetMessage: tm-add-tag
WidgetMessage: tm-auto-save-wiki
WidgetMessage: tm-browser-refresh
WidgetMessage: tm-cancel-tiddler
WidgetMessage: tm-clear-password
WidgetMessage: tm-close-all-tiddlers
WidgetMessage: tm-close-all-windows
WidgetMessage: tm-close-other-tiddlers
WidgetMessage: tm-close-tiddler
WidgetMessage: tm-close-window
WidgetMessage: tm-copy-to-clipboard
WidgetMessage: tm-delete-tiddler
WidgetMessage: tm-download-file
WidgetMessage: tm-edit-bitmap-operation
WidgetMessage: tm-edit-text-operation
WidgetMessage: tm-edit-tiddler
WidgetMessage: tm-focus-selector
WidgetMessage: tm-fold-all-tiddlers
WidgetMessage: tm-fold-other-tiddlers
WidgetMessage: tm-fold-tiddler
WidgetMessage: tm-full-screen
WidgetMessage: tm-home
WidgetMessage: tm-http-cancel-all-requests
WidgetMessage: tm-http-request
WidgetMessage: tm-http-request Example - Random Dog
WidgetMessage: tm-http-request Example - Zotero
WidgetMessage: tm-import-tiddlers
WidgetMessage: tm-load-plugin-from-library
WidgetMessage: tm-load-plugin-library
WidgetMessage: tm-login
WidgetMessage: tm-logout
WidgetMessage: tm-modal
WidgetMessage: tm-navigate
WidgetMessage: tm-new-tiddler
WidgetMessage: tm-notify
WidgetMessage: tm-open-external-window
WidgetMessage: tm-open-window
WidgetMessage: tm-perform-import
WidgetMessage: tm-permalink
WidgetMessage: tm-permaview
WidgetMessage: tm-print
WidgetMessage: tm-relink-tiddler
WidgetMessage: tm-remove-field
WidgetMessage: tm-remove-tag
WidgetMessage: tm-rename-tiddler
WidgetMessage: tm-save-tiddler
WidgetMessage: tm-save-wiki
WidgetMessage: tm-scroll
WidgetMessage: tm-server-refresh
WidgetMessage: tm-set-password
WidgetMessage: tm-unfold-all-tiddlers
WidgetMessage: tm-unload-plugin-library
Widgets
Widgets in WikiText
Wiki
WikificationMechanism
WikifyWidget
WikiText
WikiText parser mode transitions
WikiText parser mode: HTML examples
WikiText parser mode: macro examples
WikiText parser mode: transclusion examples
WikiText Parser Modes
Windows HTA Hack
Working with the TiddlyWiki5 repository
Working with the TiddlyWiki5 repository video
Working with TiddlyWiki
Xememex
Xememex Logo
XLSX Utilities Edition
zth Operator
zth Operator (Examples)

AlphaReleases

 17 novembre 2021 à 22h58

Here are the details of the alpha releases of TiddlyWiki5. See TiddlyWiki5 Versioning for details of how releases are named.

Release 5.0.1-alpha

Released 6 décembre 2013 at 17:53

See GitHub for detailed change history of this release

Improvements

  • Changes to the importing process to enable a smoother Upgrading process
    • Ignores attempts to import plugins that are older than currently installed plugins
    • System tiddlers are now imported as usual
  • If $:/theme isn't defined or refers to a missing tiddler, then fallback through Snow White to Vanilla. This means that empty.html now defaults to Snow White
  • Added support for Block Quotes in WikiText

Bug fixes

  • Fixed bug that was preventing $:/tags/PageControls tiddlers from being reordered

Internal changes

Alternative page layouts

 26 novembre 2021 à 12h03

Depuis : 5.1.23 You can have multiple alternative page layouts and switch between them. To see a list of available layouts and switch between them, use the keyboard shortcut ctrl-shift-L.

Creating an alternative page layout

Creating an alternative layout goes beyond adding or removing features from the default interface and allows you to create an entirely new layout from scratch.

To create an alternative page layout and have the ability to switch to it, you need to create an alternative page template tiddler with the SystemTag: $:/tags/Layout.

This alternative page template can either be a tweaked and modified version of the default page template, or something entirely different. The layout switching mechanism requires that your page template tiddler has the fields name and description, which are used in the listing in the switching user interface.

Amazon Web Services Plugin

 3 juillet 2017 à 20h33

The Amazon Web Services Plugin provides several tools for working with Amazon Web Services:

  • Templates for saving a TiddlyWiki as a single JavaScript file in a ZIP file that can be executed as an AWS Lambda function. In this form, TiddlyWiki is a self contained single file containing both code and data, just like the standalone HTML file configuration
  • Commands that can be used to interact with AWS services, under both the Node.js and Lambda configurations of TiddlyWiki

Anchor Links using HTML

 30 novembre 2020 à 6h43

What do they do?

In TiddlyWiki anchor links can help us link to target points and distinct sections within rendered tiddlers. They can help the reader navigate longer tiddler content.

For example this link, Bottom, should take you to the bottom of this tiddler. The "Back to the top" link below should return you back to the top of this tiddler.

Back to the top

How do I make them?

There are only 2 steps to making anchor links.

  • First, create the target point (called an 'anchor') where you want it.
  • Second, add a link to it where the reader might need it.

That's it.

Step 1: Create an 'anchor' (link target)

<a id="#Bottom_of_tiddler"></a>

Step 2: Create a link to the target anchor

<a href="##Bottom_of_tiddler">Bottom</a>
  • Create an <a href> link using exactly the same 'address' value as the target but with double ## characters preceding it.
  • Place this code where it will most help the reader.

The above example can be adapted to work for many situations in TiddlyWiki, such as the table of contents at the top of this tiddler.

Is it really that simple?

Yes, it's that simple. BUT... in TiddlyWiki there are some small differences from standard HTML5 anchor links and some specific TiddlyWiki limitations.

Back to the top

Step 1: Creating the target anchor

  • Unlike standard HTML5, in TiddlyWiki you must put a single # character in front of the target address value that follows the id attribute. (Notice the single # character used in the #Bottom_of_tiddler in Example 1.)
  • Unlike standard HTML5, TiddlyWiki anchor links are case sensitive. In the example above #Bottom_of_tiddler works, but #bottom_of_Tiddler wouldn't.
  • Avoid using the % character in your link, as some browsers have a bug where navigation to anchors containing a % character can sometimes fail (see warning below).
  • Avoid using any whitespace in your link (see note 1 below).
  • Each link address should be unique in the TiddlyWiki. If transclusions create multiple instances of the same id attribute, navigation will take place to the first instance found that satisfies the above criteria. To avoid this, you can use the qualify macro in both the id and the href attributes in a similar style to the example given below: Avoiding duplicate IDs when transcluding.

Step 2: Creating the link to the target

  • Remember that the href value should start with two # characters, one more than the id value of the target anchor.
  • Remember that TiddlyWiki anchor links are case sensitive

Step 3: Navigating to the target

Normally you can click on the link and TiddlyWiki will scroll the window so the target anchor is at the top of the window, but there are several limitations:

  • Anchor links in TiddlyWiki do not work if the tiddler is not in the Story River, or is not displayed in the sidebar.
  • Anchor links in TiddlyWiki do not work if the tidlder is in the Story River or sidebar but anchor marked target point is not visible on the page (e.g., the tiddler is folded or the anchor is within a non-displaying $reveal widget). Ctrl+Click on such an anchor link will open a new browser window/tab loading the base web page and will not navigate to the expected tiddler.
  • Anchor links in Tiddlywiki do not work if Control Panel > Appearance > Story View is set to Zoomin (the single page view) and the tiddler is not at the top of the story river (i.e. not displayed).
  • When an anchor link is clicked the browser's navigation history will be updated with the link's href value appended to the web page's URL. This will happen even if the Control Panel > Settings > Navigation History value is set to "Do not update history".
Note
1. The HTML5 specification for the id attribute says that its value should not contain any whitespace. Currently (Dec 2020) an id value with whitespace can sometimes work. However, it may not work in all browsers and is not guaranteed to work in the future.

Some browsers may fail to navigate to an anchor target whose id value includes a % character followed by 2 digits. This is a bug in the browser and nothing that TiddlyWiki can fix. To be safe, avoid using the % character.

Back to the top

More examples

In each case the target code is placed at the destination the reader navigates to, the link code is placed where it will help the reader navigate from.

<h2 id="#heading-01"> My Target Heading</h2>

<a href="##heading-01">Link to My Target Heading</a>

This looks like:


My Target Heading

Link to My Target Heading


<section id="#unique001">

!! My Target section

A `<section>` HTML tag is generally used to define sections in an HTML document, such as chapters, headers, footers, or any other sections of the document.
</section>

Clicking this anchor link goes to: <a href="##unique001">Link to My Target Section</a>

This looks like:


My Target section

A <section> HTML tag is generally used to define sections in an HTML document, such as chapters, headers, footers, or any other sections of the document.

Clicking this anchor link goes to: Link to My Target Section


Back to the top

Suggestions for HTML elements to use

Some suggestions for the HTML element you choose for marking a position using the id attribute:

Element Sample code Observations
anchor<a id="#part001-of-TiddlerName"></a>Should work perfectly everywhere
heading<h2 id="#a-new-heading">A New Heading</h2>Headings can have id attributes as well
section<section id="#sect001-of-TiddlerName">This is a new section</section>If you use the section element it should probably have an id of its own
span<span id="#007">Marker 007 is here!</span>span elements can be used to insert an id mid-paragraph

Back to the top

Suggestions for target names to use

Sample code Observations
Recommended<a id="#part001-of-TiddlerName"></a>Include the tiddler name for easy unique ids
Avoid: whitespace<h2 id="#0 0 1">A New Heading</h2>Whitespace is not guaranteed to work in all browsers
Avoid: %<section id="#sect001%20of%20TiddlerName">This is a new section</section>URI encoding (turning space into %20 and so on) may not work in some browsers
Avoid: duplicate IDs<span id="#007">Marker 007 is here!</span>id values should be unique within entire wiki
Avoid: duplicate IDs<a id="#007"></a>A different marker 007If id values are duplicated, one will be ignored

Back to the top

Avoiding duplicate IDs when transcluding

The id and anchor link to this header has been made as follows:

<a href=<<qualify "##qualify-example">>>Avoiding duplicate IDs when transcluding</a>

<h2 id=<<qualify "#qualify-example">>>Avoiding duplicate IDs when transcluding</h2>
For this to work:
  • The href and id values use the macro invocation syntax for attributes, using the qualify Macro to create a unique id value.
  • Both the id and the anchor link must be in the same tiddler.
  • There must not be any quote characters between the = and the <<.
  • The double quotes around the target name are optional, but recommended.
  • There should be a total of three > characters after the target name, two >> to close the <<qualify macro, and one > to close the <a tag.

Back to the top

Style Hints

If you don't want the link to look like an external link, give the <a> element's class attribute the value tc-tiddlylink and if you want the link to also be italic & bold, give the additional classes tc-tiddlylink-missing tc-tiddlylink-shadow like below:

<a class="tc-tiddlylink" href="##Introduction:Anchor-Links-using-HTML">Back to the top</a> or just back to <a class="tc-tiddlylink tc-tiddlylink-missing tc-tiddlylink-shadow" href=<<qualify ##Hints>>>Hints</a>.

Back to the top or just back to Style Hints.

If you want to include an id attribute to a link in your sidebar Table of Contents, you can include it in your listed tiddler's caption field similar to the way shown below:

<span id=#some-value>Your caption</span>

Back to the top

append Operator

 8 novembre 2015 à 5h15
purposeappend a range of items from an array to the list
inputa list of items
suffixan integer N, defaulting to all
parameterlist = the array of items to be appended to the tail of the list
outputa list with items appended from the head of the operand array
! outputa list with items appended from the tail of the operand array

Learn more about how to use Filters

append Operator (Examples)

 8 novembre 2015 à 5h15

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]append[Tomorrow]]

[list[Days of the Week]append[Yesterday Today Tomorrow]]

Append the first 4 short days of the week to our list

[list[Days of the Week]append:4{Days of the Week!!short}]

Apple

 27 février 2022 à 21h08

This example tiddler is used to illustrate some of the Filter Operators.

It has a list field containing the following items:

applypatches Operator

 4 mars 2023 à 15h48
purposeapplies a set of patches to transform the input
inputa selection of titles
parameterP = a string containing patches from the makepatches Operator
outputthe transformed input to which the patches P have been applied

Learn more about how to use Filters

Depuis : 5.2.6

Examples

Articles

 3 juin 2016 à 5h39

Ici quelques articles récents rédigés sur TiddlyWiki. Soumettez les nouveaux articles via GitHub, Twitter ou en postant dans les groupes de discussion TiddlyWiki.

asin Operator

 21 octobre 2021 à 23h28
purposecalculate the arcsine value (in radians) of a list of numbers
inputa selection of titles
outputthe arcsine (in radians) of the input numbers

Learn more about how to use Filters

Depuis : 5.1.21 See Mathematics Operators for an overview.

This is the inverse operation of sin: sin calculate the sine of an angle (in radian), but asin calculate the angle (in radian) of a sine.

Examples

asin Operator (Examples)

 20 octobre 2021 à 15h27

[[2]asin[]]

=1 =2 =3 =4 +[asin[]]

atan Operator

 21 octobre 2021 à 23h28
purposecalculate the arctangent value (in radians) of a list of numbers
inputa selection of titles
outputthe arctangent (in radians) of the input numbers

Learn more about how to use Filters

Depuis : 5.1.21 See Mathematics Operators for an overview.

Examples

atan Operator (Examples)

 20 octobre 2021 à 15h13

[[2]atan[]]

=1 =2 =3 =4 +[atan[]]

atan2 Operator

 21 octobre 2021 à 23h28
purposereturns the angle in the plane (in radians) between the positive x-axis and the ray from (0,0) to the point (x,y), for [Y]atan2[X]
inputa selection of titles = coordinate Y (Y)
parameterX = coordinate X
outputthe angle in radians (in [ - π , π ] ) between the positive x-axis and the ray from (0,0) to the point (x,y)

Learn more about how to use Filters

Depuis : 5.1.21 See Mathematics Operators for an overview.

Examples

atan2 Operator (Examples)

 20 octobre 2021 à 15h08

[[2]atan2[5]]

=1 =2 =3 =4 +[atan2[4]]

Attribute Selectors

 11 avril 2018 à 18h39
[attr]
Represents an element with an attribute name of attr.
[attr="value"]
Represents an element with an attribute name of attr and whose value is exactly "value".
[attr~="value"]
Represents an element with an attribute name of attr whose value is a whitespace-separated list of words, one of which is exactly "value".
[attr|="value"]
Represents an element with an attribute name of attr. Its value can be exactly “value” or can begin with “value” immediately followed by “-” (U+002D). It can be used for language subcode matches.
[attr^="value"]
Represents an element with an attribute name of attr and whose first value is prefixed by "value".
[attr$="value"]
Represents an element with an attribute name of attr and whose last value is suffixed by "value".
[attr*="value"]
Represents an element with an attribute name of attr and whose value contains at least one occurrence of string "value" as substring.
[attr "operator value" i]
Adding an i (or I) before the closing bracket causes the value to be compared case-insensitively (for characters within the ASCII range).

Learn more at: Attribute selectors - CSS or CSS-Specification

Audio

 19 octobre 2014 à 21h06

Audio files can be incorporated into TiddlyWiki in a very similar way to images.

Embedded Audio

Small audio files can be embedded directly within TiddlyWiki. Embedding isn't suitable for large files (over a few hundred kilobytes) because it increases the size of the TiddlyWiki file.

For example, the tiddler TiddlyWiki.mp3 contains an MP3 recording of the word "TiddlyWiki". If you visit that tiddler, you should see an audio player that will play back the recording.

You can also transclude audio files. For example:

{{TiddlyWiki.mp3}}

Affichera ceci :

External Audio

External audio tiddlers use the _canonical_uri field to point to an external audio file/stream, and have their text field blocked. This reduces their size considerably, but still allows for playback.

For example, the tiddler Caruso - Ave Maria points to an online audio recording hosted on http://archive.org:

{{Caruso - Ave Maria}}

Affichera ceci :

Sauvegarde automatique

 1 juin 2015 à 10h44

S'il y a un ModuleSauvegarde qui l'accepte, TiddlyWiki déclenche automatiquement celle du document courant au clic sur valide ou sur supprime lors de la saisie d'un tiddler.

Vous apercevrez une notification jaune en haut à droite de la fenêtre confirmant qu'une sauvegarde automatique à eu lieu.

La sauvegarde automatique peut être activée ou non via l'onglet Paramétrage du panneau de contrôle . En arrière plan, elle est contrôlé par le tiddler de paramétrage $:/config/AutoSave, qui doit avoir la valeur yes pour activer la sauvegarde automatique.

average Operator

 26 avril 2021 à 14h15
purposetreating each input title as a number, compute their arithmetic mean
inputa selection of titles
outputthe arithmetic mean of the input as numbers

Learn more about how to use Filters

Depuis : 5.2.0 See Mathematics Operators for an overview.

Examples

average Operator (Examples)

 26 avril 2021 à 14h15

=1 =3 =4 =5 +[average[]]

Note that if there is no input the operator returns NaN

[tag[NotATiddler]get[price]] +[average[]]

backlinks Operator

 3 février 2015 à 18h33
purposefind the titles that link to each input title
inputa selection of titles
parameternone
outputany non-system titles that contain hard links to the input titles

Learn more about how to use Filters

Each input title is processed in turn. The corresponding tiddler's list of backlinks is generated, sorted alphabetically by title, and then dominantly appended to the operator's overall output.

Examples

backlinks Operator (Examples)

 18 janvier 2015 à 18h31

[[HelloThere]backlinks[]]

[tag[TableOfContents]backlinks[]]
→ tiddlers that link to tiddlers tagged TableOfContents

[all[current]backlinks[]]
→ tiddlers that link to this one

Base64

 23 juin 2015 à 7h21

Base64 est une façon de représenter des données binaires telles que des images, comme une chaine de texte.

before Operator

 3 février 2015 à 19h19
purposefind which input title precedes a specified one
inputa selection of titles
parameterT = one of those titles
outputthe title that immediately precedes T in the input

Learn more about how to use Filters

If T is not present in the input, or is the first title there, then the output is empty.

Examples

before Operator (Examples)

 18 janvier 2015 à 18h31

These examples make use of the Days of the Week tiddler. The Thursday tiddler shows a further example.

[list[Days of the Week]before[Saturday]]

[list[Days of the Week]before[Monday]]

Behaviour of invoked variables depends on how the variable was declared

 26 juillet 2023 à 15h57

Invoked in normal wikitext context: <$transclude $variable=macro/> or <<macro>>

how declaredbehaviour
\defineAll wikitext and variable substitution and textual substitution takes place
$set, $let, $vars, \procedure, \widgetAll wikitext and variable substitution takes place
\functionInvoking a function in this way (<<macro>>) is a synonym for <$text text={{{[function[macro]]}}}/>. As with any filtered transclusion (i.e. triple curly braces), all results except the first are discarded

Invoked via widget attribute: <div class=<<macro>>/>

how declaredbehaviour
\defineTextual substitution of parameters is performed on the body text. No further processing takes place. The result after textual substitution is used as the attribute's value
$set, $let, $vars, \procedure, \widgetBody text is retrieved as-is and used as the attribute's value.
\functionWhen a function is invoked as <div class=<<macro>>/>, it is a synonym for <div class={{{[function[macro]]}}}/>. As with any filtered transclusion (i.e. triple curly braces), all results except the first are discarded. That first result is used as the attribute's value. Note that functions are recursively processed even when invoked in this form. In other words a filter expression in a function can invoke another function and the processing will continue

Invoked via filter operator parameter: [<macro>]

how declaredbehaviour
\defineTextual substitution of parameters is performed on the body text. No further processing takes place. The result after textual substitution is used as the filter operator's parameter.
$set, $let, $vars, \procedure, \widgetBody text is retrieved as-is and used as the filter operator's parameter.
\functionThe body text of the function is treated as a filter expression and evaluated. The first result is passed to the operator as a parameter. The remaining results are discarded.

Invoked via function call in a filter expression: [function[macro]]

how declaredbehaviour
\define, $set, $let, $vars, \procedure, \widgetEvery function is a variable, but only variables defined using \function are invokable using the function filter operator. Attempts to use a non-function variable is the same as if the function doesn't exist. The behavior in this case is like the identity function. All filter input is passed unchanged to the output.
\functionThe body text of the function is treated as a filter expression and evaluated. This filter expression can itself contain a function call. Filter expressions can be factored out into functions arbitrarily deep.

Examples

Below is an example macro, procedure and function definition. All three forms of parameter substitution $a1$, <<__a1__>>, and <<a1>> are included in each definition. The output helps illustrate when each form of substitution will or will not have affect.

\define m1(a1) $a1$ - <<__a1__>> - <<a1>>
\procedure p1(a1) $a1$ - <<__a1__>> - <<a1>>
\function f1(a1) $a1$ "-" [<__a1__>] ="-" [<a1>] :and[join[ ]]
Variable transclusionoutput
<<m1 foo>>foo - foo -
<<p1 foo>>$a1$ - - foo
<<f1 foo>>$a1$ - - foo
Widget attributeoutput
<$text text=<<m1 foo>>/>foo - <<__a1__>> - <<a1>>
<$text text=<<p1 foo>>/>$a1$ - <<__a1__>> - <<a1>>
<$text text=<<f1 foo>>/>$a1$ - - foo
Filter operator parameteroutput
[<m1 foo>]foo - <<__a1__>> - <<a1>>
[<p1 foo>]$a1$ - <<__a1__>> - <<a1>>
[<f1 foo>]$a1$ - - foo
Function call in filter expressionoutput
[function[m1],[foo]]"A free, open source wiki revisited" by Mark Gibbs, NetworkWorld
[function[p1],[foo]]"A free, open source wiki revisited" by Mark Gibbs, NetworkWorld
[function[f1],[foo]]$a1$ - - foo

Behaviour of variables invoked via filter expression function call

 26 juillet 2023 à 16h06
how declaredbehaviour
\define, $set, $let, $vars, \procedure, \widgetEvery function is a variable, but only variables defined using \function are invokable using the function filter operator. Attempts to use a non-function variable is the same as if the function doesn't exist. The behavior in this case is like the identity function. All filter input is passed unchanged to the output.
\functionThe body text of the function is treated as a filter expression and evaluated. This filter expression can itself contain a function call. Filter expressions can be factored out into functions arbitrarily deep.

Behaviour of variables invoked via filter operator parameter

 26 juillet 2023 à 16h06
how declaredbehaviour
\defineTextual substitution of parameters is performed on the body text. No further processing takes place. The result after textual substitution is used as the filter operator's parameter.
$set, $let, $vars, \procedure, \widgetBody text is retrieved as-is and used as the filter operator's parameter.
\functionThe body text of the function is treated as a filter expression and evaluated. The first result is passed to the operator as a parameter. The remaining results are discarded.

Behaviour of variables invoked via normal wikitext

 26 juillet 2023 à 16h06
how declaredbehaviour
\defineAll wikitext and variable substitution and textual substitution takes place
$set, $let, $vars, \procedure, \widgetAll wikitext and variable substitution takes place
\functionInvoking a function in this way (<<macro>>) is a synonym for <$text text={{{[function[macro]]}}}/>. As with any filtered transclusion (i.e. triple curly braces), all results except the first are discarded

Behaviour of variables invoked via widget attributes

 26 juillet 2023 à 16h06
how declaredbehaviour
\defineTextual substitution of parameters is performed on the body text. No further processing takes place. The result after textual substitution is used as the attribute's value
$set, $let, $vars, \procedure, \widgetBody text is retrieved as-is and used as the attribute's value.
\functionWhen a function is invoked as <div class=<<macro>>/>, it is a synonym for <div class={{{[function[macro]]}}}/>. As with any filtered transclusion (i.e. triple curly braces), all results except the first are discarded. That first result is used as the attribute's value. Note that functions are recursively processed even when invoked in this form. In other words a filter expression in a function can invoke another function and the processing will continue

BetaReleases

 17 novembre 2021 à 23h01

Here are the details of the beta releases of TiddlyWiki5. See TiddlyWiki5 Versioning for details of how releases are named.

Release 5.0.18-beta

Released 17 septembre 2014 at 22:10

See GitHub for detailed change history of this release

This is a minor release prior to the full release of TiddlyWiki on September 20th. The documentation has been cleaned up and improved (with more improvements to come).

File Layout of tiddlywiki.com

The layout of files on tiddlywiki.com has been adjusted to make it more logical. See the ticket for a discussion. You can see the source files that make up tiddlywiki.com at https://github.com/Jermolene/jermolene.github.com

Hackability Improvements

  • Added first iteration of a list-links macro (further improvements are planned)
  • Added support for importing .markdown and .md files
  • Extended timeline macro to support a subfilter

Bug Fixes

  • Fixed problem with digits being classified as lower case letters for wiki link matching
  • Fixed crash when sorting missing tiddlers by fields other than title
  • Fixed problem with handling .jpeg file extensions
  • Fixed problem with RadioWidget and missing tiddlers
  • Fixed problem with dragging a partially selected link

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

bf Operator

 3 février 2015 à 18h37
purposesame as rest

Learn more about how to use Filters

WikiTexte en mode bloc

 22 avril 2022 à 22h01

Une partie du WikiTexte n'est reconnue que quand l'interpréteur est en mode « bloc ».

Caractéristiques communes de ce WikiTexte en mode bloc :

  • Il occupe au moins une ligne entière.
  • Le marqueur de fermeture doit être situé en fin de ligne (dans certains cas la fin de ligne est le marqueur de fermeture)
WikiTexteMarqueurs
Citations en bloc en WikiTexteLes citations multi-lignes sont encadrées par le texte <<< tout seul sur sa ligne ; les citations mono-ligne sont aussi possibles.
Blocs de code en WikiTexteLes blocs de code sont encadrés par le texte ``` tout seul sur sa ligne.
Définitions en WikiTexteChaque terme est sur sa propre ligne, et chaque définition est sur sa propre ligne.
Fins de lignes forcées en WikiTexteEncadrées par le texte """ tout seul sur sa ligne.
Titres de rubriques en WikiTexteLignes complètes commençant par !.
Lignes horizontales en WikiTexteUne ligne ne contenant que le texte ---.
Listes en WikiTexteChaque élément de liste est sur sa propre ligne.
Paragraphes en WikiTexteTout autre texte que le marqueur de début d'une des autres expressions WikiTexte en mode bloc constitue le début d'un paragraphe. Même un marqueur de début d'expression WikiTexte en mode en ligne constitue le début d'un paragraphe. L’interpréteur inclut toutes les lignes suivantes dans le paragraphe jusqu'à rencontrer une ligne vide.
Styles et Classes en WikiTexteEncadrés par des lignes commençant par @@.
Tableaux en WikiTexteChaque ligne du tableau est une ligne de texte qui commence et se termine par |.
Blocs typés en WikiTexteEncadrés par des lignes commençant par $$.

Les expressions WikiTexte ci-dessus ne sont reconnues qu'en mode bloc. Par contre, le texte contenu à l'intérieur sera interprété en mode en ligne (les Citations en bloc en WikiTexte et les Styles et Classes en WikiTexte sont les deux expressions pour lesquelles l'interpréteur poursuit l'analyse en mode bloc). L'analyse en mode en ligne peut amener l'interpréteur à rencontrer un contenu qui le fait basculer en mode bloc.

À la fin de la dernière ligne du bloc, l'interpréteur retourne en mode bloc.

Note: Les fins de ligne forcées nécessitent une ligne vide supplémentaire après le """ final pour que l'interpréteur retourne en mode bloc.

Si le marqueur de début d'une des expressions de bloc ci-dessus est rencontré alors que l'interpréteur est en mode en ligne, il sera ignoré et apparaîtra tel quel dans le résultat.

Exemples

WikiTexte en mode bloc (exemples)

 22 avril 2022 à 22h51

Les paragraphes sont la forme la plus courante de WikiTexte. Il est important de comprendre qu'ils ne se terminent pas avant d'avoir rencontré une ligne vide. Dès qu'un paragraphe commence, l'interpréteur passe en mode en ligne. Jusqu'à ce que cette ligne vide soit rencontrée, les syntaxes de WikiTexte en mode bloc sont ignorées :

Voici un paragraphe.
Seule la syntaxe du __//mode en ligne//__ est reconnue ici.
La syntaxe du mode bloc est <b>ignorée</b> entre le début
et la fin du paragraphe (c-à-d la prochaine ligne vide).
Par exemple :
* Les listes sont ignorées
* Tout comme cette ligne horizontale<<:>>
---
|les tableaux|sont|ignorés|
! les titres sont ignorés
<<<
les citations multi-lignes sont ignorées
<<<

Affichera ceci :

Voici un paragraphe. Seule la syntaxe du mode en ligne est reconnue ici. La syntaxe du mode bloc est ignorée entre le début et la fin du paragraphe (c-à-d la prochaine ligne vide). Par exemple : * Les listes sont ignorées * Tout comme cette ligne horizontale : — |les tableaux|sont|ignorés| ! les titres sont ignorés <<< les citations multi-lignes sont ignorées <<<

Pour que le WikiTexte en mode bloc soit reconnu, il faut insérer une ligne vide après la ligne « Par exemple : ». La ligne vide constituera une fin de paragraphe, et l'interpréteur commencera à reconnaître la syntaxe du mode bloc à nouveau. Comme ceci :

Voici un paragraphe.
Seule la syntaxe du __//mode en ligne//__ est reconnue ici.
La syntaxe de mode bloc est <b>ignorée</b> entre le début
et la fin du paragraphe (c-à-d la prochaine ligne vide).
Par exemple, voici une ligne vide :

* grâce à la ligne vide ci-dessus,
* les listes fonctionnent
* Tout comme cette ligne horizontale<<:>>
---
|!les tableaux|!fonctionnent|
|cellule 1| cellule 2|
! les titres fonctionnent
<<<
les citations multi-lignes fonctionnent
<<<
; Terme
: Définition de ce terme
Un autre paragraphe peut commencer ici, mais il ne finira pas avant une ligne vide.

Affichera ceci :

Voici un paragraphe. Seule la syntaxe du mode en ligne est reconnue ici. La syntaxe de mode bloc est ignorée entre le début et la fin du paragraphe (c-à-d la prochaine ligne vide). Par exemple, voici une ligne vide :

  • grâce à la ligne vide ci-dessus,
  • les listes fonctionnent
  • Tout comme cette ligne horizontale :

les tableauxfonctionnent
cellule 1cellule 2

les titres fonctionnent

les citations multi-lignes fonctionnent

Terme
Définition de ce terme

Un autre paragraphe peut commencer ici, mais il ne finira pas avant une ligne vide.

À part le paragraphe, tous les exemples de WikiTexte en mode bloc ci-dessus sont écrits une ligne après l'autre sans ligne vide intermédiaire. Ces types de WikiTexte n'ont pas besoin de ligne vide pour en marquer la fin.

Citations en bloc en WikiTexte

 17 avril 2022 à 22h48

Il existe deux manières de produire des éléments HTML de type citation en bloc avec TiddlyWiki, l'une pour du contenu qui pourra s'afficher sur plusieurs lignes, et l'autre pour du contenu qui ne devra s'afficher que sur une seule ligne.

Citation en bloc multi-lignes

La syntaxe pour les blocs multi-lignes est :

<<<
Ceci est un paragraphe de type citation en bloc
écrit en français
<<<

Affichera ceci :

Ceci est un paragraphe de type citation en bloc écrit en français

Code HTML correspondant :

<blockquote class="tc-quote"><p>Ceci est un paragraphe de type citation en bloc
écrit en français
</p></blockquote>

Attribution

Une attribution peut-être ajoutée au bloc comme ceci :

<<<
Les ordinateurs sont des vélos pour nos neurones
<<< Steve Jobs

Affichera ceci :

Les ordinateurs sont des vélos pour nos neurones

Steve Jobs

Code HTML correspondant :

<blockquote class="tc-quote"><p>Les ordinateurs sont des vélos pour nos neurones
</p><cite>Steve Jobs</cite></blockquote>

Classes CSS

Les blocs peuvent hériter des propriétés de classes CSS :

<<<.myClass.another-class
Les systèmes d'exploitation sont des murs pour notre esprit
<<< Personne

Affichera ceci :

Les systèmes d'exploitation sont des murs pour notre esprit

Personne

Code HTML correspondant :

<blockquote class="tc-quote myClass another-class"><p>Les systèmes d'exploitation sont des murs pour notre esprit
</p><cite>Personne</cite></blockquote>

Le cœur de TiddlyWiki inclut la classe tc-big-quote qui représente les citations avec des guillemets géants :

<<<.tc-big-quote
Une citation dramatique
<<< Quelqu'un d'important

Affichera ceci :

Une citation dramatique

Quelqu'un d'important

Code HTML correspondant :

<blockquote class="tc-quote tc-big-quote"><p>Une citation dramatique
</p><cite>Quelqu'un d'important</cite></blockquote>

Bloc uniligne

La syntaxe des citations uniligne est une extension de la syntaxe des listes avec WikiText. Par exemple :

> Bloc de citation uniligne
> Un autre bloc uniligne

Affichera ceci :

Bloc de citation uniligne
Un autre bloc uniligne

Code HTML correspondant :

<blockquote><div>Bloc de citation uniligne</div><div>Un autre bloc uniligne</div></blockquote>

Vous pouvez imbriquer des blocs unilignes comme ceci :

> Un bloc de niveau 1
>> Un bloc de niveau 2
> Un autre bloc de niveau 1
">>

Ce qui affichera :

Un bloc de niveau 1
Un bloc de niveau 2
Un autre bloc de niveau 1

Vous pouvez aussi mixer les citations en bloc avec d'autres types de listes. Par exemple :

* Liste une
** Liste deux
**> Un bloc uniligne
**> Un autre bloc uniligne
* Liste trois

Affichera ceci :

  • Liste une
    • Liste deux
      Un bloc uniligne
      Un autre bloc uniligne
  • Liste trois

Code HTML correspondant :

<ul><li>Liste une<ul><li>Liste deux<blockquote><div>Un bloc uniligne</div><div>Un autre bloc uniligne</div></blockquote></li></ul></li><li>Liste trois</li></ul>

Pour aller plus loin

Blog Edition

 2 septembre 2015 à 13h32

The Blog edition of TiddlyWiki contains tools to help publish static HTML blogs written in TiddlyWiki. It is currently designed for use under Node.js.

While documentation is being prepared, see https://github.com/Jermolene-blog/blog for an example of use.

Blurry Lawn.jpg

 

Brackets

 28 juillet 2022 à 16h04

WikiText syntax uses a number of different types of brackets. Their names are shown in the table below:

AppearanceNameShort nameUsage
()Round bracketsParenthesisNot used in WikiText
[]Square bracketsBracketsLinks, Filters
{}Curly bracketsBracesText references, Filtered attributes
<>Angle bracketsChevronsHTML elements and widgets, Macros

Brownies

 6 octobre 2020 à 19h12

This is a sample shopping list item for the Shopping List Example

Navigateurs compatibles

 31 mai 2015 à 19h43

TiddlyWiki est conçu pour fonctionner avec des navigateurs HTML5-compatibles.

Le tableau suivant récapitule les versions de navigateur qui sont connues pour fonctionner avec TiddlyWiki

NavigateursStatus
Internet ExplorerVersion 10 et suivantes
ChromeToutes les récentes versions
FirefoxToutes les récentes versions
Firefox for AndroidToutes les récentes versions
SafariVersion 6 et suivantes

BrowserStorage Plugin

 6 février 2019 à 18h12

The BrowserStorage Plugin enables TiddlyWiki to save tiddlers in browser local storage. This means that changes are stored within the browser, and automatically re-applied any time the base wiki is reloaded.

Browser local storage is not a panacea for TiddlyWiki:

  • Browsers limit the amount of local storage available to a page, typically to 5 or 10MB
  • Keeping personal data in browser local storage can lead to unexpected privacy violations
  • Browsers reserve the right to without warning delete data stored in local storage at any time
  • Browsers tie local storage to a URL which can lead to problems if you move a wiki to a URL previously occupied by a different wiki

Please use this plugin with caution. There are a number of unresolved issues and open questions.

The BrowserStorage Plugin can be installed from the plugin library.

BrowseWidget

 21 avril 2020 à 23h13

Introduction

The browse widget displays an HTML file browser button that allows the user to choose one or more files to import. It sends a WidgetMessage: tm-import-tiddlers carrying a JSON representation of the tiddlers imported from the files up through its parents. This message is usually handled by the NavigatorWidget which adds the tiddlers to the store and updates the story to display them.

Content and Attributes

The content of the $BrowseWidget widget is ignored.

AttributeDescription
multipleSet to "multiple" to select multiple file upload
deserializer Depuis : 5.1.15 Optional name of deserializer to be used (by default the deserializer is derived from the file extension or type)
tooltipOptional tooltip text
accept Depuis : 5.1.23 Optional comma delimited list of file accepted extensions and/or MIME types
messageOptional override of widget message to be generated. The files will be passed in the JavaScript object event.target.files
paramOptional parameter to be passed with the custom message

On iPhone/iPad choosing the multiple option will remove the ability to take photographs/videos directly into TiddlyWiki.

e.g.

<$browse/>

renders as:

BT

 1 novembre 2013 à 9h11

BT (née British Telecom) is the UK's largest telecommunications company. In 2007, Osmosoft was acquired by BT. JeremyRuston subsequently left BT in 2011.

Acquisition par //British Telecom//

 5 octobre 2014 à 15h14

En mai 2007, British Telecom a acquis Osmosoft, ma société de consultant. Acquérir une société avec un seul employé et un minuscule filet de revenu relevait d'une décision inhabituelle, Osmosoft ne détenant même pas la propriété intellectuelle de TiddlyWiki, puisque je l'avais transférée à UnaMesa pour assurer son avenir pour la communauté.

La motivation de British Telecom était de mieux comprendre les écosystèmes basés sur les communautés. Je rejoignis la société en tant que « Head of Open Source Innovation », responsable de la gouvernance open source, et fournissant des conseils et de l'expertise sur la manière de participer à des communautés open source.

BuildCommand

 15 novembre 2014 à 22h30

Compile le wiki courant à partir des cibles spécifiées. Si aucune cible n'est spécifiée, toutes les cibles seront compilées.

--build <target> [<target> ...]

Les cibles de compilation sont définies dans le fichier tiddlywiki.info du dossier associé au wiki.

Voir TiddlyWikiFolders pour des détails sur la définition de cibles de compilation.

Building TiddlyWikiClassic

 12 septembre 2014 à 15h16

TiddlyWiki5 can be used to build older 2.x.x versions of TiddlyWikiClassic from their constituent components. Doing so involves these features:

  • The tiddlywiki/classictools plugin, containing a deserializer module which allows tiddlers to be loaded from TiddlyWiki 2.x.x .recipe files
  • The stripcomments format for the ViewWidget, which strips single line JavaScript comments starting //#
  • The stripTitlePrefix='yes' attribute of the FieldsWidget, which removes prefixes wrapped in curly braces from the title attribute
    • For example, {tiddler}HelloThere would be transformed to HelloThere

Usage

TiddlyWikiClassic is built from the command line by running TiddlyWiki on Node.js. A typical usage would be:

node ../../tiddlywiki.js \
	--verbose \
	--load <path_to_recipe_file> \
	--rendertiddler $:/core/templates/tiddlywiki2.template.html <path_to_write_index_file> text/plain \
	|| exit 1

butfirst Operator

 3 février 2015 à 18h37
purposesame as rest

Learn more about how to use Filters

butlast Operator

 26 février 2022 à 4h33
purposediscard the last N input titles
inputa selection of titles
parameterN = an integer, defaulting to 1
outputall but the last N input titles

Learn more about how to use Filters

Depuis : 5.2.2 The butlast operator returns the input list unchanged if N is 0. This is consistent with the behaviour of the rest Operator.

Examples

butlast Operator (Examples)

 26 février 2022 à 4h33

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]butlast[]]

[list[Days of the Week]butlast[0]]

[list[Days of the Week]butlast[2]]

A B C D E F G H I J K L M +[butlast[7]]

ButtonWidget

127.0.0.1 17 décembre 2014 à 21h12

Introduction

The button widget displays an HTML <button> element that can perform a combination of optional actions when clicked:

  • Executing any ActionWidgets that are immediate children of the button widget
  • Execute any integrated actions:
    • Navigate to a specified tiddler
    • Dispatch a user defined widget message
    • Trigger a user defined popup
    • Assign new text to a specified tiddler

The integrated actions are provided as a shortcut for invoking common actions. The same functionality is available via ActionWidgets, with the exception of the support for highlighting selected popups.

Content and Attributes

The content of the <$button> widget is displayed within the button.

AttributeDescription
toThe title of the tiddler to navigate to
messageThe name of the widget message to send when the button is clicked
paramThe optional parameter to the message
setA TextReference to which a new value will be assigned
setToThe new value to assign to the TextReference identified in the set attribute
popupTitle of a state tiddler for a popup that is toggled when the button is clicked
aria-labelOptional Accessibility label
tooltipOptional tooltip
classAn optional CSS class name to be assigned to the HTML element
styleAn optional CSS style attribute to be assigned to the HTML element
selectedClassAn optional additional CSS class to be assigned if the popup is triggered or the tiddler specified in set already has the value specified in setTo
defaultDefault value if set tiddler is missing for testing against setTo to determine selectedClass

Tip: Set class to tc-btn-invisible tc-tiddlylink to have a button look like an internal link.

Notation chameau

 4 mars 2022 à 1h55

La « notation chameau » (en anglais « Camel Case ») est une convention de casse formée en passant en majuscule l'initiale de chaque mot d'une phrase et en supprimant les espaces entre les mots, ce qui forme un long mot composé. De nombreux wikis utilisent la Notation chameau pour marquer les phrases qui produisent automatiquement un lien.

Exemple : ExempleDeNotationChameauQuiProduitUnLienVersUnNouveauTiddlerPortantCeNom

NDT : Visuellement, l'alternance des lettres en majuscules et en minuscules dans les phrases en notation chameau produit une sorte d'ondulation, comme les bosses d'un chameau.

Caruso - Ave Maria

 

Cascade Filter Run Prefix

 30 novembre 2021 à 12h15

Depuis : 5.2.1

purposemodify input titles by evaluating in turn a list of filters - as returned by the filter expression for this run - for each input title.
inputall titles from previous filter runs
outputthe input titles as modified by the filters returned by this filter run

The filter expression for this filter run is evaluated to return a list of filters. Each input title is then evaluated against each of the filters in turn, and the input title is replaced with the first result of the first filter that returns a non-empty list. If none of the filters return a result for an input title, it is replaced with an empty string.

The following variables are available within the filter run:

  • currentTiddler - the input title
  • ..currentTiddler - the value of the variable currentTiddler outside the filter run.

Examples

Cascade Filter Run Prefix (Examples)

 4 décembre 2021 à 1h09

The :cascade filter run prefix is used by the TiddlyWiki core to choose the colour for each tiddler as used in the tag pill generated by the tag macro.

:cascade[all[shadows+tiddlers]tag[$:/tags/TiddlerColourFilter]!is[draft]get[text]]

The filter expression inside the above :cascade filter run returns a list of filters from the text fields of tiddlers tagged as shown below:

  • [has[color]then{!!color}]
  • [tag[TableOfContents]then[#1e90ff]]
    [tag[Working with TiddlyWiki]then[darkorchid]]
    
  • [[$:/config/DefaultTiddlerColour]has[text]get[text]trim[]]

For each input title, each of these filters is now applied to in turn until the first filter that returns a non-empty list. The first result from this non-empty list replaces that input title and is used as the colour for that tiddler.

[all[shadows+tiddlers]] :cascade[all[shadows+tiddlers]tag[$:/tags/TiddlerColourFilter]!is[draft]get[text]] +[!is[blank]limit[10]]

Extended example

This example illustrates step-by-step how the :cascade filter run works.

A filter expression whose output returns a list of filters is required. Typically such a filter expression will construct the list of filters by querying some field in a set of tiddlers (likely via tag). To keep this example self-contained, 3 filters are stored in the filter1, filter2 and filter3 fields of this tiddler. Text references and instances of the append operator are used to combine the fields into a list of filters.

The filter [{!!filter1}append{!!filter2}append{!!filter3}], generates this list of filters:

  • [prefix[ca]then[ca]]
  • [suffix[at]then[at]]
  • other

For this example, cat can bat bug will be used as the input titles. Each input title will be evaluated by :cascade against each of the above filters in turn. To help understand what :cascade sees internally, the following table uses the Map Filter Run Prefix to show the result of each individual filter.

cat can bat bug :map[prefix[ca]then[ca]]
cat can bat bug :map[suffix[at]then[at]]
cat can bat bug :map[[other]]

Click "Try it" on the above 3 examples. The first non-blank value from each row as read from left to right will be returned when :cascade is used. Click "Try it" below to see the final result:

cat can bat bug :cascade[{!!filter1}append{!!filter2}append{!!filter3}]

Cascades

 6 décembre 2021 à 16h47

Introduction

Cascades are a key mechanism used to construct and customise TiddlyWiki's user interface.

See Customising TiddlyWiki's user interface for an overview of all the customisation mechanisms

How cascades work

Cascades provide a means to select one of multiple values based on flexible, extensible criteria. They can be thought of as a list of conditions that are evaluated in turn until one of them matches.

Each cascade is defined by a special tag which identifies the tiddlers containing the conditions to be matched. The Order of Tagged Tiddlers determines the order in which the conditions are processed, and provides the means for arranging new rules at specific points in the cascade.

The conditions are defined by a Filter Expression in the text field. The filters are evaluated with the list of input titles set to the title of the tiddler to be considered. The currentTiddler variable is also set to the title of the tiddler to be considered.

If the filter returns no result then that result will be ignored and the cascade proceeds to test the next condition. If the filter expression does return at least one result then it serves as the result of the entire cascade.

The Cascade Filter Run Prefix provides the implementation of the underlying logic.

Example

The Story Tiddler Template Cascade contains the logic for determining a tiddler should be displayed as an editable draft or in view mode. By default, it consists of two tiddlers containing the following list of rules:

  1. [is[draft]then{$:/config/ui/EditTemplate}] – if it is a draft tiddler, use the template title given in the tiddler $:/config/ui/EditTemplate
  2. [{$:/config/ui/ViewTemplate}]  – otherwise, use the template title given in the tiddler $:/config/ui/ViewTemplate

Usage in the core

The TiddlyWiki core uses cascades to choose the following elements:

Story Tiddler Template CascadeThe template used to display a particular tiddler in the story river. By default, the edit template is chosen for draft tiddlers, and the view template for others
Tiddler Icon CascadeThe optional icon associated with a particular tiddler (displayed alongside the title)
Tiddler Colour CascadeThe optional colour associated with a particular tiddler (used to colour the tiddler icon and if the tiddler is used as a tag also provides the colour for the tag pill)
View Template Title CascadeThe template used to display the title of a particular tiddler (used by the default view template to display the tiddler title)
View Template Body CascadeThe template used to display the view mode body of a particular tiddler (used by the default view template to display the tiddler body)
Edit Template Body CascadeThe template used to display the edit mode body of a particular tiddler (used by the default edit template to display the tiddler body editor)
Field Editor CascadeThe template used to display the edit mode of a tiddler field (used by the default edit template to display the field editor)

You can see the current settings for each cascade in $:/ControlPanel under the Info -> Advanced -> Cascades tab.

See Also

CSS, les Feuilles de Style

 23 juin 2015 à 8h36

Le CSS est un format de texte brut standard employé pour définir le style de présentation d'éléments variés sur une page web.

ceil Operator

 11 juin 2019 à 18h44
purposerounds a list of numbers up to the next largest integer
inputa selection of titles
outputrounds each of the input numbers up to the next largest integer

Learn more about how to use Filters

Depuis : 5.1.20 See Mathematics Operators for an overview.

Examples

ceil Operator (Examples)

 11 juin 2019 à 18h45

[[1.6]ceil[]]

[[-1.6]ceil[]]

=-1.2 =-2.4 =3.6 =4.8 =5.1 +[ceil[]]

changecount Macro

 21 décembre 2022 à 17h45

The changecount macro returns the number of times the current tiddler has been created, stored or deleted during the current TiddlyWiki session.

If a tiddler is deleted and subsequently recreated, its changecount will be increased by two.

Parameters

(none)

Exemples

changecount Macro (Examples)

 21 février 2015 à 15h12

<<changecount>>

The value will increase if you edit this tiddler and store it again, even without making any changes to its content.

To access the changecount of a different tiddler, use a $tiddler widget:

<$tiddler tiddler="Draft of 'New Tiddler'">
<<changecount>>
</$tiddler>

The value shown will increase whenever you create, store or delete New Tiddler.

Changes to filters in 5.0.9-beta

 8 octobre 2014 à 18h16

Introduction

Cette version résoud un certain nombre d'incohérences dans la manière dont les filtres sont gérés. Ces changements impliquent que les filtres préexistants peuvent nécessiter des mises à jour — en particulier ceux qui s'exercent potentiellement sur des tiddlers manquants ou shadow.

Changements à is et ajout de all

La plupart des opérateurs de filtres agissent en réagençant tout ou partie des titres source. Ceux qui ajoutent de nouvelles entrées qui ne faisaient pas partie de la liste sur laquelle ils agissent sont nommés sélecteurs. Avant la version 5.0.9-beta, quelques nouveaux opérateurs de filtres étaient incohérents dans leur manière de filtrer la liste source ou d'y ajouter de nouvelles entrées.

Les changements spécifiques sont les suivants :

  • L'opérateur is se contente à présent de filtrer à partir de la liste de tiddlers déjà sélectionnée
  • Le nouvel opérateur all agit comme sélecteur en remplaçant la liste en cours avec une combinaison de tidddlers issus des sources spécifiques suivantes :
    • current pour le tiddler courant
    • missing pour tous les tiddlers manquants
    • orphans pour tous les tiddlers orphelins
    • shadows pour tous les tiddlers shadow
    • tiddlers pour tous les tidders non-shadow (comprenant à la fois les tiddlers système et non système)

Les sources de l'opérateur all peuvent être combinées à l'aide du caractère +. Par exemple, [all[shadows+tiddlers]] renvoie tous les tidders shadow ainsi que tous les tiddlers ordinaires.

Précédemment, il n'était pas rare d'avoir [is[shadow]] au début d'une chaîne de filtre pour sélectionner tous les tidders shadow. À partir de 5.0.9, au lieu de renvoyer tous les tiddlers shadow, cela renverra seulement les tiddlers ordinaires qui s'avèrent être aussi un tiddler shadow (par la grâce d'en avoir écrasé un). La solution consiste à utiliser le nouvel opérateur all. Par exemple, si l'on considère ce filtre tiré de 5.0.8 :

[is[shadow]!has[draft.of]tag[$:/tags/AdvancedSearch]] [!is[shadow]!has[draft.of]tag[$:/tags/AdvancedSearch]] +[tag[$:/tags/AdvancedSearch]]

Avec 5.0.9, ce filtre a été changé en :

[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch]!has[draft.of]]

On remarque comment l'opérateur all permet d'effectuer des opérations sur des tiddlers à partir de combinaisons de sources.

Changements pour [is[current]]

Une conséquence de ces changements est que [is[current]] est à présent un pur filtre sur les tiddlers source ; du coup, si le tiddler courant est un tiddler manquant qui ne se trouve pas dans la liste source, [is[current]] renverra une liste vide.

Généralement, la solution consiste plutôt à utiliser [all[current]]. Ce n'est pas aussi naturel à lire, mais ça a le comportement attendu de retourner systématiquement le tiddler courant, qu'il se trouve ou non parmi les tiddlers sources.

Changements concernant title et field

Il y a des changements mineurs sur la façon dont fonctionnent les opérateurs title et field.

L'opérateur title est un sélecteur : il renvoie le titre spécifié, qu'il se trouve ou non dans la source courante. title est utilisé comme opérateur par défaut si aucun opérateur n'est spécifié.

L'opérateur field est un filtre : il se contente de retourner un sous-ensemble des tiddlers source. field est utilisé comme opérateur par défaut si l'opérateur fourni n'est pas défini (l'opérateur fourni est alors passé comme suffixe de l'opérateur field, de sorte que [description[Missing]] est équivalent à [field:description[Missing]]).

charcode Operator

 22 juin 2021 à 22h44
purposegenerates string characters from their numeric character codes
inputignored
parameterC = numeric character code
outputa string formed from concatenating the characters specified by the numeric codes given in the operand(s)

Learn more about how to use Filters

Depuis : 5.2.0

This operator returns a string formed from concatenating the characters specified by the numeric codes given in one or more operands. It is useful for generating special characters such as tab (charcode[9]) or new line (charcode[13],[10]).

Examples

charcode Operator (Examples)

 22 juin 2021 à 22h48

[charcode[65]match[A]]

CheckboxWidget

 16 mars 2023 à 19h26

Introduction

The checkbox widget displays an HTML <input type="checkbox"> element that is dynamically bound to either:

  • the presence or absence of a specified tag on a specified tiddler
  • the value of a specified field of a specified tiddler

Content and Attributes

The content of the <$checkbox> widget is displayed within an HTML <label> element immediately after the checkbox itself. This means that clicking on the content will toggle the checkbox.

AttributeDescription
tiddlerTitle of the tiddler to manipulate (defaults to the Current Tiddler)
The name of the tag to which the checkbox is bound
invertTagWhen set to yes, flips the tag binding logic so that the absence of the tag causes the checkbox to be checked
The name of the field to which the checkbox is bound
Depuis : 5.2.3 The name of the field that contains the list to which the checkbox is bound
Depuis : 5.1.14 The property of the DataTiddler to which the checkbox is bound
Depuis : 5.2.3 Like index, but treats the value as a list the same way that listField does
Depuis : 5.2.3 A filter whose output determines the checked state of the checkbox
checkedThe value of the field corresponding to the checkbox being checked
uncheckedThe value of the field corresponding to the checkbox being unchecked
defaultThe default value to use if the field is not defined
Whether ambiguous values can produce indeterminate checkboxes (see below)
classThe class that will be assigned to the <label> element
Depuis : 5.2.3 tc-checkbox is always applied by default, as well as tc-checkbox-checked when checked
actions Depuis : 5.1.14 A string containing ActionWidgets to be triggered when the status of the checkbox changes (whether it is checked or unchecked)
uncheckactions Depuis : 5.1.16 A string containing ActionWidgets to be triggered when the checkbox is unchecked
checkactions Depuis : 5.1.20 A string containing ActionWidgets to be triggered when the checkbox is checked
disabled Depuis : 5.1.23 Optionally disables the checkbox if set to yes (defaults to no)

CheckboxWidget (field Mode)

 17 mars 2023 à 16h11

field Mode

Using the checkbox widget in field mode requires the field attribute to specify the name of the field. The checked and unchecked attributes specify the values to be assigned to the field to correspond to its checked and unchecked states respectively. The default attribute is used as a fallback value if the field is missing or contains a value that does not correspond to the value of the checked or unchecked attributes.

This example creates a checkbox that is checked if the field status is equal to open and unchecked if the field is equal to closed. If the field value is undefined then it defaults to closed.

<$checkbox field="status" checked="open" unchecked="closed" default="closed"> Is it open?</$checkbox>

''status:'' {{!!status}}

Affichera ceci :

status:

CheckboxWidget (filter Mode)

 25 mars 2023 à 10h14

filter Mode

Using the checkbox widget in filter mode requires the filter attribute to contain a filter whose output will determine the checked state of the checkbox. In filter mode, checking the checkbox will not automatically make changes to any field of any tiddler. Instead, you can use the actions attribute (or the checkactions and uncheckactions attributes) to specify what should happen when the checkbox is toggled. It is your responsibility to make sure the actions cause changes to the tiddlers or fields that the filter results depend on, so that the checkbox becomes properly checked or unchecked after the actions have triggered and the filter has updated.

If the filter returns an empty result, the checkbox will be unchecked. Otherwise, if the filter result is non-empty, the checkbox will be checked.

However, if either the checked or unchecked attributes (or both) are specified, then their values will be looked for in the filter result, instead of considering any non-empty value to mean checked.

This example creates the same checkbox as in the , selecting between red and green in the colors list field, but using filters and actions to make the change.

\define checkActions() <$action-listops $field="colors" $subfilter="-red green"/>
\define uncheckActions() <$action-listops $field="colors" $subfilter="red -green"/>
<$checkbox filter="[list[!!colors]]" checked="green" unchecked="red" default="red" checkactions=<<checkActions>> uncheckactions=<<uncheckActions>> > Is "green" in colors?</$checkbox>

''colors:'' {{!!colors}}

Affichera ceci :

colors:

CheckboxWidget (indeterminate)

 17 mars 2023 à 16h09

indeterminate Checkboxes

If both the checked and unchecked attributes are specified, but neither one is found in the specified field (or index), the result can be ambiguous. Should the checkbox be checked or unchecked? Normally in such cases the checkbox will be unchecked, but if the indeterminate attribute is set to yes (default is no), the checkbox will instead be in an "indeterminate" state. An indeterminate checkbox counts as false for most purposes — if you click it, the checkbox will become checked and the checkactions, if any, will be triggered — but indeterminate checkboxes are displayed differently in the browser.

This example shows indeterminate checkboxes being used for categories in a shopping list (which could also be sub-tasks in a todo list, or many other things). If only some items in a category are selected, the category checkbox is indeterminate. You can click on the category checkboxes to see how indeterminate states are treated the same as the unchecked state, and clicking the box checks it and applies its check actions (in this case, checking all the boxes in that category). Try editing the fruits and vegetables fields on this tiddler and see what happens to the example when you do.

\define check-all(field-name:"items") <$action-listops $field="selected-$field-name$" $filter="[list[!!$field-name$]]" />
\define uncheck-all(field-name:"items") <$action-listops $field="selected-$field-name$" $filter="[[]]" />

<$checkbox filter="[list[!!selected-fruits]count[]]" checked={{{ [list[!!fruits]count[]] }}} unchecked="0" checkactions=<<check-all fruits>> uncheckactions=<<uncheck-all fruits>> indeterminate="yes"> fruits</$checkbox>
<ul style="list-style: none">
<$list variable="fruit" filter="[list[!!fruits]]">
<li><$checkbox listField="selected-fruits" checked=<<fruit>>> <<fruit>></$checkbox></li>
</$list>
</ul>
<$checkbox filter="[list[!!selected-vegetables]count[]]" checked={{{ [list[!!vegetables]count[]] }}} unchecked="0" checkactions=<<check-all vegetables>> uncheckactions=<<uncheck-all vegetables>> indeterminate="yes"> veggies</$checkbox>
<ul style="list-style: none">
<$list variable="veggie" filter="[list[!!vegetables]]">
<li><$checkbox listField="selected-vegetables" checked=<<veggie>>> <<veggie>></$checkbox></li>
</$list>
</ul>

<p>Selected veggies: {{!!selected-vegetables}}<br/>
Selected fruits: {{!!selected-fruits}}</p>

Affichera ceci :

Selected veggies:
Selected fruits:

CheckboxWidget (index Mode)

 17 mars 2023 à 16h09

index Mode

To use the checkbox widget in index mode set the index attribute to a property of a DataTiddler. The checked and unchecked attributes specify the values to be assigned to the property and correspond to its checked and unchecked states respectively. The default attribute is used as a fallback value if the property is undefined.

Make sure to set tiddler correctly, because non-DataTiddlers will be overwritten without warning

The example below creates a checkbox that is checked if the property in the tiddler ExampleData by the name of the current tiddler is equal to selected and unchecked if the property is an empty string. If the property is undefined then it defaults to an empty string, meaning the checkbox will be unchecked if the property is missing.

<$checkbox tiddler="ExampleData" index=<<currentTiddler>> checked="selected" unchecked="" default=""> Selected?</$checkbox>

Affichera ceci :

CheckboxWidget (listField Mode)

 17 mars 2023 à 16h09

listField Mode

Using the checkbox widget in list mode requires the listField attribute to specify the name of a field containing a list. The checked attribute specifies the value that should be present or absent in the list when the checkbox is checked or unchecked respectively. If checked is absent (or empty) but unchecked is present, then the logic will be inverted: the checkbox will be checked when the unchecked value is missing from the list, and unchecked when the unchecked value is found in the list. If both checked and unchecked are present, the checkbox will work like a toggle, replacing the checked value with the unchecked value and vice-versa. Finally, if neither checked nor unchecked is specified, the checkbox will be checked if the field has anything in it, but unchecked if the field is missing or empty. (This is rarely useful. Most of the time you want to specify checked or unchecked or both.)

The default attribute is used as a fallback for the checkbox state if the field is not defined.

The following table summarizes the possible combinations:

defined attributes
neitherfield missing or list empty
no default defined
field has any value
checked=item1item1 removed from listitem1 added to list
unchecked=item2item2 added to listitem2 removed from list
bothitem1 removed from list
item2 added to list
item1 added to list
item2 removed from list
item1 not in list
item2 not in list
no default defined

This example creates a checkbox that is checked if the list field named colors contains green and unchecked if the field contains red. If the field is undefined, or if neither green nor red appears in the field, then it defaults to green, meaning that the checkbox will be checked.

<$checkbox listField="colors" checked="green" unchecked="red" default="green"> Is "green" in colors?</$checkbox><br />''colors:'' {{!!colors}}

Affichera ceci :


colors:

Try editing the colors field of this tiddler to see how the example changes.

CheckboxWidget (listIndex Mode)

 17 mars 2023 à 16h09

listIndex Mode

Using the checkbox widget in index list mode requires the listIndex attribute to specify the the property of a DataTiddler. This property contains a list. The checked attribute specifies the value that should be present or absent in the list when the checkbox is checked or unchecked respectively. If checked is absent (or empty) but unchecked is present, then the logic will be inverted: the checkbox will be checked when the unchecked value is missing from the list, and unchecked when the unchecked value is found in the list. If both checked and unchecked are present, the checkbox will work like a toggle, replacing the checked value with the unchecked value and vice-versa. Finally, if neither checked nor unchecked is specified, the checkbox will be checked if the field has anything in it, but unchecked if the field is missing or empty. (This is rarely useful. Most of the time you want to specify checked or unchecked or both.)

The default attribute is used as a fallback for the checkbox state if the property is undefined.

The following table summarizes the possible combinations:

defined attributes
neitherproperty missing or list empty
no default defined
property has any value
checked=item1item1 removed from listitem1 added to list
unchecked=item2item2 added to listitem2 removed from list
bothitem1 removed from list
item2 added to list
item1 added to list
item2 removed from list
item1 not in list
item2 not in list
no default defined

Make sure to set tiddler correctly, because non-DataTiddlers will be overwritten without warning

The example below creates three checkboxes that each control a different value in a property of the ExampleData tiddler.

<$set name=indexName filter="[<currentTiddler>addsuffix[ Colors]]" >
<$checkbox tiddler="ExampleData" listIndex=<<indexName>> checked="green" unchecked="red" default="red"> Green or red?</$checkbox><br/>
<$checkbox tiddler="ExampleData" listIndex=<<indexName>> checked="yellow" unchecked="blue" default="blue"> Yellow or blue?</$checkbox><br/>
<$checkbox tiddler="ExampleData" listIndex=<<indexName>> checked="orange" unchecked="purple" default="purple"> Orange or purple?</$checkbox><br/>
Colors list: <$text text={{{ [[ExampleData]getindex<indexName>] }}} />
</$set>

Affichera ceci :




Colors list:

CheckboxWidget (tag Mode)

 17 mars 2023 à 16h11

tag Mode

Using the checkbox widget in tag mode requires the tag attribute to specify the name of the tag. The checkbox will be checked if the tiddler specified in the tiddler attribute has the specified tag and unchecked if it does not.

This example creates a checkbox that flips the done tag on the current tiddler:

<$checkbox tag="done"> Is it done?</$checkbox>

Affichera ceci :

When the attribute invertTag is set to yes, the checkbox will be checked if the tiddler does not have the specified tag and unchecked if it does.

<$checkbox tag="done" invertTag="yes"> Is it not done?</$checkbox>

Affichera ceci :

Chick Peas

 6 octobre 2020 à 19h12

This is a sample shopping list item for the Shopping List Example

Édition en Chinois (simplifié)

 3 décembre 2014 à 17h48

TiddlyWiki 的简体中文翻译版本:

另请参阅 中文 (正體) 版

Édition en Chinois (traditionnel)

 3 décembre 2014 à 17h49

TiddlyWiki 的正體中文翻譯版本:

另請參閱 中文 (简体) 版

ClearPasswordCommand

 

Efface le mot de passe pour les prochaines opérations de chiffrement

--clearpassword

Blocs de code en WikiTexte

 21 avril 2022 à h30

Un bloc de code () est délimité par trois caractères « accent grave » ``` (connus en anglais sous le nom de « backticks ») :

```
Ce texte aura une chasse fixe et ne sera pas `formaté`.
```

Donnera le résultat suivant :

Ce texte aura une chasse fixe et ne sera pas `formaté`.

Pour être interprétés correctement, les trois accents graves doivent être placés au début d'une ligne et immédiatement suivis d'un retour à la ligne.

Souvenez-vous que le paragraphe précédent doit s'être terminé correctement, à l'aide de deux retours à la ligne. L'exemple suivant est donc faux :

Ceci est un paragraphe ordinaire.
```
Ce texte aura une chasse fixe et ne sera pas `formaté`.
```

La version correcte est :

Ceci est un paragraphe ordinaire.

```
Ce texte aura une chasse fixe et ne sera pas `formaté`.
```

Certains claviers traitent l'accent grave comme une touche morte, le rendant difficile à saisir tout seul. L'astuce consiste à saisir 3 ` suivis d'un espace. Une autre méthode consiste à saisir 6 ` d'affilée, puis de bouger le curseur en arrière trois fois pour saisir ou coller le contenu du bloc.

Code styles and auto format settings for IDEs

 6 janvier 2021 à 15h10

CodeBlockWidget

 17 août 2016 à 18h53

Introduction

The codeblock widget renders text in <pre> and <code> blocks, causing it to be displayed monospace. A language may optionally be specified using the language attribute, however syntax highlighting will only be used if the Highlight Plugin is installed.

Content and Attributes

The content of the <$codeblock> widget is ignored.

AttributeDescription
codeContents of the block to render as code
languageProgramming language for syntax highlighting

The language attribute accepts either:

Examples

Here is an example embedding the contents of a tiddler as a code block.

<$codeblock code={{$:/editions/tw5.com/macro-examples/say-hi}} />

Affichera ceci :

\define sayhi(name:"Bugs Bunny" address:"Rabbit Hole Hill")
Salut, Je suis $name$ et je vis à $address$.
\end

A codeblock may also specify a language.

<$codeblock code="SELECT * FROM users WHERE deleted = false" language="sql" />

Affichera ceci :

SELECT * FROM users WHERE deleted = false

Plugin CodeMirror

 15 juin 2015 à 7h56

Ce plugin offre l'intégration d'un éditeur web sophistiqué au sein de TiddlyWiki.

Voir https://tiddlywiki.com/plugins/tiddlywiki/codemirror/

Codes HTML

 17 octobre 2014 à 16h35
&lt;chevrons&gt;

<chevrons>

colour Macro

 28 février 2020 à 14h28

The colour (or color) macro returns the CSS value of one the colours in the current palette.

If no such entry exists in the current palette, the vanilla palette is used instead. If no such entry exists in the vanilla palette, the system looks for a configuration tiddler with the title $:/config/DefaultColourMappings/<colour-name> and transcludes the colour from the text field. This enables to plugins to ship defaults for colours that are not present in the core palettes.

Parameters

name
The name of the palette entry, e.g. page-background

Exemples

colour Macro (Examples)

 21 février 2015 à 15h48

<<colour code-border>>
<<colour foreground>>
<<colour page-background>>
<<colour sidebar-tab-background>>
<<colour tag-foreground>>

colour-picker Macro

 18 avril 2016 à 16h43

The colour-picker macro displays an interactive colour picker, as can be seen in the core bitmap editor.

Parameters

actions
Wikitext for the action widgets that should be executed when the user selects a colour. Within the text, the variable colour-picker-value contains the selected colour.

Exemples

colour-picker Macro (Example 1)

 16 novembre 2021 à 3h46

Colour:


Récent :



colour-picker Macro (Examples)

 18 avril 2016 à 16h53

Colour: <$edit-text tiddler='$:/_MyColour' tag='input' placeholder='(unset)' default=''/>

---

<$macrocall $name='colour-picker' actions="

<$action-setfield $tiddler='$:/_MyColour' $value=<<colour-picker-value>>/>

"/>

Palettes de couleurs

 24 juin 2015 à 10h25

Une palette de couleur est un tiddler data qui affecte une valeur de couleur CSS, comme yellow ou #fe0, à chacun des multiples noms de couleur, de cette façon :

page-background: #fe0
table-border: #ccc
...

Plusieurs palettes font partie du noyau. le tiddler système $:/palette contient toujours le titre du tiddler en cours de la palette sélectionnée.

Pour récupérer la valeur du nom d'une couleur dans la palette courante, ex : à employer dans un tiddler stylesheet, faites appel à la macro colour :

<<colour page-background>>

Les tiddlers palette tiddlers contiennent les champs suivants :

NomValeur
titleDébute typiquement par $:/
typeapplication/x-tiddler-dictionary
tags$:/tags/Palette
descriptionAffichée à l'exploration de la palette
textname: value définition des couleurs

CSV (Valeurs séparées par des virgules)

 24 juin 2015 à 10h15

Le CSV est un format de texte brut standard pour stocker des tableaux de données.

Chaque ligne d'une table est appelé un enregistrement (record) et n'occupe qu'une seule ligne.

Les colonnes sont appelées champs (field). Chaque champ d'une ligne est séparée du suivant par une virgule, et souvent encadré par des balises double-cote.

La macro csvtiddlers renvoie le contenu d'un tiddler dans ce format.

Commandes

 15 novembre 2014 à 21h58

commands Operator

 3 février 2015 à 18h41
purposeselect the titles of all the Node.js commands
inputignored
parameternone
outputthe command words that can be given to TiddlyWiki on Node.js

Learn more about how to use Filters

commands Operator (Examples)

 18 janvier 2015 à 18h31

[commands[]]

CommandsCommand

 4 décembre 2022 à 20h25

Lance la séquence des commandes retournées par un filtre

--commands <filtre>

Exemples

--commands "[enlist{$:/commandes-build-sous-forme-de-texte}]"
--commands "[{$:/commandes-build-sous-forme-json}jsonindexes[]] :map[{$:/commandes-build-sous-forme-json}jsonget<currentTiddler>]"

Communauté

 17 février 2022 à 15h59

Les liens les plus utiles et les plus récents sont maintenant regroupés dans l’Agrégateur de liens communautaire.

Lorsque tous les liens pertinents auront été transférés, ces entrées seront retirées du site tiddlywiki.com.

Les informations, articles, ressources et exemples les plus récents.

Community Editions

 1 janvier 2021 à 15h18

These are prepackaged editions created by the TiddlyWiki Community. These are TiddlyWikis with added plugins and configurations to facilitate a certain use-case. These are great starting points if you want to quickly jump into TiddlyWiki and start using it without spending too much time configuring yourself.

Agrégateur de liens communautaire

 2 avril 2022 à 11h58

L'Agrégateur de liens communautaire est une collection fréquemment mise à jour de liens vers des ressources utiles et intéressantes sur TiddlyWiki, dénichées par notre équipe d'éditeurs communautaires. Le site agrège les liens soigneusement sélectionnés par les membres de la communauté TiddlyWiki. Il permet de visualiser les liens les plus récents, et de les explorer par catégorie et chronologiquement.

https://links.tiddlywiki.org/

Plus les contributeurs sont nombreux, et mieux le site fonctionne ! Comme chacun n'est pas tenu de recenser chaque lien qui passe, la pression individuelle sur les contributeurs est réduite. L'agrégation des liens réduit aussi l'impact d'une erreur, par exemple d'une erreur de catégorisation : si un contributeur catégorise un lien dans la mauvaise rubrique, le site permet de voir qu'une seule personne a utilisé cette rubrique, alors que la majorité utilise la catégorie appropriée. Ainsi, nous espérons qu'une sorte d'intelligence collective émergera, avec un consensus sur la manière la plus utile de décrire et de catégoriser les liens.

Community Palettes

 1 janvier 2021 à 15h25

This is a list of palettes made by members of the TiddlyWiki Community. Palettes change the colourscheme of TiddlyWiki and can be used in combination with themes.

Community Plugins

 1 janvier 2021 à 15h14

These are plugins created by the TiddlyWiki Community. Visit their website to try out the plugin. Carefully read the installing instructions and back up before installing! These plugins may not always be up to date and can contain bugs or unwanted behaviour. For even more plugins, visit the TiddlyWiki Groups. New plugins get posted and announced there first.

Community Themes

 1 janvier 2021 à 15h25

This is a list of themes made by members of the TiddlyWiki Community. Themes change the look and feel of TiddlyWiki, allowing for another degree of customisation. Installing themes works the same as plugins.

compare Operator

 12 avril 2020 à 19h15
purposefilter the input by comparing each item against the operand
inputa selection of titles
suffixthe compare operator uses a rich suffix, see below for details
parameterthe value to compare
outputthose input titles matching the specified comparison
! outputthose input titles not matching the specified comparison

Learn more about how to use Filters

Depuis : 5.1.22The compare filter allows numerical, string and date comparisons to be performed.

The compare operator uses an extended syntax to specify all the options:

[compare:<type>:<mode>[<operand>]]

The type can be:

  • "number" - invalid numbers are interpreted as zero
  • "integer" - invalid integers are interpreted as zero
  • "string"
  • "date" - invalid dates are interpreted as 1st January 1970
  • "version" - invalid versions are interpreted as "v0.0.0"

The mode can be:

  • "eq" - equal to
  • "ne" - not equal to
  • "gteq" - greater than or equal to
  • "gt" - greater than
  • "lteq" - less than or equal to
  • "lt" - less than

The operator compares each item in the selection against the value of the parameter, retaining only those items that pass the specified condition.

For example:

[[2]compare:number:eq[3]] returns nothing
[[2]compare:number:lt[3]] returns "2"
[[2]compare:number:eq[2]] returns "2"

Note that several of the variants of the compare operator are synonyms for existing operators, and are provided in the interests of consistency. For example, compare:string:eq[x] is a synonym for match[x].

Examples

compare Operator (Examples)

 12 avril 2020 à 22h29

[[20200101]compare:date:gt[201912311852]]
→ compares two partial dates

[[202001011852]compare:integer:gt[20191231]]
→ compares the same two strings as integers

[list[Days of the Week]compare:string:gt[M]compare:string:lt[W]]

[[v5.1.23-prerelease]compare:version:gt[v5.1.22]]

[[1]compare:number:gt[2]then[yes]else[no]]

Composer une ballade

 19 novembre 2014 à 22h55

Il s'agit de l'une des tâches pour l'exemple de gestion de tâches

Concatenating text and variables using macro substitution

 15 juin 2023 à 12h45

Depuis : 5.3.0 It is recommended to use substituted attributes or the substitute filter operator to concatenate text and variables.

It's a frequent use case in TiddlyWiki that you will want to put the results of variables together with various bits of strings of text. This process in some programming languages is often referred to as "concatenating" text.

You might, for instance want to set up a template for your customer database, where links will automatically refer to additional contact information about your customer. Inside your tiddler, you might try something like this:

Attention :
Ne faites pas comme ça !

[[Additional Info|<<currentTiddler>>-Contact]]

But that won't work. If you try this, the link will be interpreted very literally, and will attempt to take you to:

<<currentTiddler>>-Contact

The solution is to use a macro to put the rendered value of <<currentTiddler>> together with the bit of additional text, -Contact.

Create a macro at the top of the tiddler like this:

\define linkup(link) [[Additional Info|$link$-Contact]]

You might be tempted to invoke the new macro like this:

Attention :
Ne faites pas comme ça !

<<linkup <<currentTiddler>> >>

But if you do, you will find that <<currentTiddler>> doesn't get rendered, but instead gets passed literally.

Instead, you could use the MacroCallWidget widget, like this:

<$macrocall $name="linkup" link=<<currentTiddler>> />

In this case, we passed the value of a variable directly to our macro. This is often a general way to go about this task. If you wanted to create more links based on other variables you could re-use the macro for each situation.

If, as in this case, the only variable you are using is currentTiddler then you could write a simple macro, like this:

\define linkup() [[Additional Info|$(currentTiddler)$-Contact]]

Notice that in this case we don't pass an argument. Instead, we reference the variable using the special syntax $(variable)$. Since we don't pass an argument, we can invoke it without the <$macrocall> widget more simply, like this:

<<linkup>>

Concepts

 23 juin 2015 à 7h22

Conditional Operators

 1 mai 2023 à 18h51

Depuis : 5.1.20The conditional filter operators allow for if-then-else logic to be expressed within filters.

The foundation is the convention that an empty list can be used to represent the Boolean value false and a list with at one (or more) entries to represent true.

The conditional operators are:

  • then Operator replaces any input values with a constant string. For example:
  • else Operator if the title list is empty then returns a constant string, otherwise returns the original title list

These operators can be combined. For example:

[[New Tiddler]is[missing]then[I am missing]else[No I am not missing]]

The else operator can be used to apply a defaults for missing values. In this example, we take advantage of the fact that the get operator returns an empty list if the field or tiddler does not exist:

[[HelloThere]get[custom-field]else[default-value]]

Filter Run Prefixes

The :then and :else filter run prefixes serve a similar purpose as the conditional operators. Refer to their documentation for more information.

Configurations

 2 juin 2015 à 17h46

TiddlyWiki peut fonctionner dans différentes configurations distinctes :

Configuring startup tiddlers

 6 mars 2018 à 16h14

You can configure TiddlyWiki to start up using whatever individual or group of tiddlers you want using the default tiddlers mechanism.

In the control panel under the info tab is an input field labeled "Choose which tiddlers are displayed at startup". You can list whatever tiddlers you want to open at startup. Use double square brackets for titles containing spaces. For example:

FirstTiddler
SecondTiddler
[[Third Tiddler]]

You can also use filter expressions to open more than one tiddler. For example:

[tag[HelloThere]]

will open all tiddlers tagged as .

You can also use this technique to preserve open tiddlers at startup

See also StartupActions for controlling more advanced startup behaviours.

Configuring the default TiddlerInfo tab

 12 septembre 2014 à 15h59

The configuration tiddler $:/config/TiddlerInfo/Default contains the title of the tiddler containing the default tiddler info tab.

The default value is $:/core/ui/TiddlerInfo/Tools corresponding to the Tools tab. Other possible values are:

  • $:/core/ui/TiddlerInfo/Tools
  • $:/core/ui/TiddlerInfo/References
  • $:/core/ui/TiddlerInfo/Tagging
  • $:/core/ui/TiddlerInfo/List
  • $:/core/ui/TiddlerInfo/Listed
  • $:/core/ui/TiddlerInfo/Fields
  • $:/core/ui/TiddlerInfo/Advanced
  • $:/editions/tw5.com/TiddlerInfo/Sources

Consent Banner Plugin

 19 octobre 2020 à 9h46

The Consent Banner Plugin helps make websites that are compliant with "cookie legislation" such as the EU General Data Protection Regulation. It presents a banner inviting the user to accept or reject cookies, keeping track of their consent in local storage so that the banner can be hidden on subsequent visits.

By default, content embedded with <iframe>, <embed> and <object> is blocked unless the user consents to accept cookies.

Consent status is available via a configuration tiddler so that it is possible to construct content that behaves differently depending upon whether consent has been granted. As an example, a macro is provided for embedding YouTube videos that automatically uses the youtube-nocookie.com variant of video URLs unless the user has accepted cookies.

Please note that using this plugin does not guarantee compliance with any particular legislation. You will need to understand the technical issues specific to your situation, and if necessary seek legal advice.

Constructing JSON tiddlers

 9 août 2023 à 12h36

See JSON in TiddlyWiki for an overview of using JSON in TiddlyWiki.

JSON data is just plain text, and so there are an wide variety of techniques to generate it in wikitext.

At a high level, we have several ways to generate JSON data in TiddlyWiki's own tiddler format:

When constructing JSON data manually, the stringify Operator is needed to ensure that any special characters are properly escaped.

contains Operator

 15 août 2018 à 13h46
purposefilter the input by searching list fields for a value
inputa selection of titles
suffixF = the name of a field (defaults to list)
parameterS = a possible value to be found in list field F
outputthose input tiddlers in which the list field F contains the value S
! outputthose input tiddlers in which the list field F does not contain the value S

Learn more about how to use Filters

contains Operator (Examples)

 15 août 2018 à 13h49

[contains:tags[HelloThere]]
→ equivalent to [tag[HelloThere]]

[[$:/StoryList]contains[HelloThere]]
→ checks whether the tiddler 'HelloThere' is currently displayed in the story river

Contents

 

Sample data for TableOfContentsMacro.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Type de contenu

 24 juin 2015 à 10h14

Utilisé dans les protocoles Internet pour spécifier le type d'interprétation à appliquer au contenu d'une ressource web.

Dans TiddlyWiki, le champ type contient le type d'interprétation à appliquer au contenu du champ principal text.

Liste des Types de contenu (ContentType) courants

GroupeTypeContenu des champs type
DéveloppeurÉléments d'un Dictionnaireapplication/x-tiddler-dictionary
code JavaScriptapplication/javascript
Éléments JSONapplication/json
Feuille de style Statiquetext/css
Imageimage GIFimage/gif
fichier au format icone ICOimage/x-icon
image JPEGimage/jpeg
image PDFapplication/pdf
image PNGimage/png
image Structured Vector Graphicsimage/svg+xml
Textebalisage HTMLtext/html
Feuille de style Cascadetext/css
Valeurs séparées par des virgulestext/csv
Texte bruttext/plain
TiddlyWiki 5text/vnd.tiddlywiki
TiddlyWiki Classictext/x-tiddlywiki

contrastcolour Macro

 21 février 2015 à 15h13

The contrastcolour macro returns whichever of two given CSS colours is deemed to contrast best with another.

An example can be seen in the template tiddler for tag pills.

Parameters

target
The colour to contrast against (typically a background colour)
fallbackTarget
An alternative colour to contrast against. This is used when target is undefined or not a valid colour
colourA
The first of the two colours to choose between
colourB
The second of the two colours to choose between

Contribuer

 1 juin 2015 à 18h24

Nous accueillons les contributions au code et à la documentation de TiddlyWiki de plusieurs manières :

Il existe encore plusieurs façons d'aider TiddlyWiki.

Accord de Licence des Contributeurs

À l'instar d'autres projets OpenSource, TiddlyWiki5 a besoin que ses contributeurs signent un accord de licence pour leurs contributions. C'est un accord contractuel qui permet aux contributeurs de confirmer qu'ils sont propriétaires des droits d'auteur de leurs contributions, et qu'ils acceptent de les licencier à l'Association UnaMesa (l'entité juridique qui possède TiddlyWiki au nom de la communauté).

Comment signer la CLA

Proposez une contribution (PullRequest) sur GitHub en ajoutant à cla-individual.md ou cla-entity.md, votre nom suivi de la date au format (YYYY/MM/DD).

pas à pas

  1. Cliquez licenses/CLA-individuelle ou licenses/CLA-organisation
  2. Dans le document cla-individual.md ou le cla-entity.md cliquez sur l'icone dans le coin en haut à droite, ce qui créera une copie modifiable du projet, un fork, dans votre espace de propositions et vous permettra de modifier ses différents documents
  3. Modifiez la licence en ajoutant votre nom en bas comme dans l'exemple, eg : Jeremy Ruston, @Jermolene, 2011/11/22
  4. Validez par un PullRequest

Les documents de CLA utilisés pour ce projets ont été créés en utilisant les modèles du projet Harmony. "HA-CLA-I-LIST Version 1.0" pour la "CLA-individuelle" et "HA-CLA-E-LIST Version 1.0" pour la "CLA-organisation".

Remarque

  • Au cas où vous ne soyez pas propriétaire des droits d'auteurs de toutes vos propositions !

    Veuillez le mentionner clairement, ou nous vous considérerons comme le détenteur légal des droits d'auteur de la contribution ! Aussi, veuillez fournir les liens et informations additionnelles décrivant sous quelle licence le reste du code est diffusé.

ContributingTemplate

 25 août 2013 à 15h49

Contributing to TiddlyWiki5

Nous accueillons les contributions au code et à la documentation de TiddlyWiki de plusieurs manières :

Il existe encore plusieurs façons d'aider TiddlyWiki.

Accord de Licence des Contributeurs

À l'instar d'autres projets OpenSource, TiddlyWiki5 a besoin que ses contributeurs signent un accord de licence pour leurs contributions. C'est un accord contractuel qui permet aux contributeurs de confirmer qu'ils sont propriétaires des droits d'auteur de leurs contributions, et qu'ils acceptent de les licencier à l'Association UnaMesa (l'entité juridique qui possède TiddlyWiki au nom de la communauté).

Comment signer la CLA

Proposez une contribution (PullRequest) sur GitHub en ajoutant à cla-individual.md ou cla-entity.md, votre nom suivi de la date au format (YYYY/MM/DD).

pas à pas

  1. Cliquez licenses/CLA-individuelle ou licenses/CLA-organisation
  2. Dans le document cla-individual.md ou le cla-entity.md cliquez sur l'icone dans le coin en haut à droite, ce qui créera une copie modifiable du projet, un fork, dans votre espace de propositions et vous permettra de modifier ses différents documents
  3. Modifiez la licence en ajoutant votre nom en bas comme dans l'exemple, eg : Jeremy Ruston, @Jermolene, 2011/11/22
  4. Validez par un PullRequest

Les documents de CLA utilisés pour ce projets ont été créés en utilisant les modèles du projet Harmony. "HA-CLA-I-LIST Version 1.0" pour la "CLA-individuelle" et "HA-CLA-E-LIST Version 1.0" pour la "CLA-organisation".

Remarque

  • Au cas où vous ne soyez pas propriétaire des droits d'auteurs de toutes vos propositions !

    Veuillez le mentionner clairement, ou nous vous considérerons comme le détenteur légal des droits d'auteur de la contribution ! Aussi, veuillez fournir les liens et informations additionnelles décrivant sous quelle licence le reste du code est diffusé.

This file was automatically generated by TiddlyWiki5

Contributor License Agreement

 26 février 2022 à 17h55

Like other OpenSource projects, TiddlyWiki5 needs a signed contributor license agreement from individual contributors. This is a legal agreement that allows contributors to assert that they own the copyright of their contribution, and that they agree to license it to the UnaMesa Association (the legal entity that owns TiddlyWiki on behalf of the community).

Contributeurs

 5 novembre 2014 à 14h34

Les personnes ci-dessous ont généreusement donné de leur temps pour contribuer au développement de TiddlyWiki:

Coordinate Systems

 10 août 2022 à 21h16

TiddlyWiki (primarily the RevealWidget) supports two coordinate systems for positioning popups (see PopupMechanism to learn more about popups).

Depuis : 5.2.4 We introduced absolute coordinates that may not work with all extensions and plugins. For maximum backwards compatibility, use absolute coordinates only where necessary.

Relative coordinate system

The default coordinate system is relative to the nearest positioned ancestor element. This is either:

  • an element with a non-static position, or
  • a td, th, table in case the element itself is static positioned.

For tiddlers the nearest positioned ancestor element mostly is the body of the tiddler. Read the next chapter to learn about the exceptions.

Relative coordinates are expressed in the form (x,y,w,h). Where x and y represent the position and w and h the width and height of the element.

Absolute coordinate system

The relative coordinate system works flawless most of the time. Problems occure if the target element (for example, a popup) and the source element (the triggering button) do not share the same positioned ancestor element. This is often the case if the popup is declared outside a table and the triggering button is declared within a table cell. In this case the coordinate systems have different origins and the popup will be displayed in the wrong location.

Absolute coordinates can fix this problem by using the root element of the page (the upper-left corner of the page) as the origin of the coordinate system. Absolute coordinates are expressed in the form @(x,y,w,h). Where x and y represent the position and w and h the width and height of the element. The leading @-symbol marks these coordinates as absolute.

The ButtonWidget has an option (popupAbsCoords) to put absolute coordinates into the state tiddler. The DraggableWidget and the EventCatcherWidget provide the absolute coordinate of an event within the attribute tv-popup-abs-coords.

Example

The following example shows a popup that is triggered from within a table cell. The table cell is the nearest positioned ancestor element. The popup was defined outside the table cell. The button using relative coordinates will open the popup in the wrong location because the button and the popup do not agree on the same coordinate system. Using absolute coordinates fixes this problem.

<$reveal type="popup" state="$:/state/CoordinateSampleReveal">
<div class="tc-drop-down">
Popup
</div>
</$reveal>

| Table Row 1 |<$button popup="$:/state/CoordinateSampleReveal">Relative coordinates</$button>|
| Table Row 2 |<$button popup="$:/state/CoordinateSampleReveal" popupAbsCoords="yes">Absolute coordinates</$button>|

Affichera ceci :

Table Row 1
Table Row 2

copy-to-clipboard Macro

 16 décembre 2017 à 10h49

The copy-to-clipboard macro displays a button that copies specified text to the clipboard. A notification is displayed if the operation is successful; some browsers do not permit the operation.

Parameters

src
The text to be copied to the clipboard
class
Optional CSS classes to be assigned to the button (defaults to tc-btn-invisible)
style
Optional CSS styles to be assigned to the button

Exemples

copy-to-clipboard Macro (Examples)

 16 décembre 2017 à 10h51

<<copy-to-clipboard "Mary had a little lamb">>
<$macrocall $name="copy-to-clipboard" src={{$:/SiteTitle}}/>

Copier des tiddlers entre fichiers TiddlyWiki

 14 juin 2015 à 11h28

Vous pouvez copier un tiddler particulier d'un fichier TiddlyWiki à un autre en glissant un vers le tiddler d'une fenêtre du navigateur à une autre.

Core Icons

 23 avril 2023 à 11h31

Introduction

TiddlyWiki includes over 100 custom vector icons. They feature in the user interface and are also available for authors to use in their own applications. See Icon Gallery for a complete listing.

Usage

The core icons are used by transcluding them. For example:

{{$:/core/images/new-image-button}}

Affichera ceci :

The core icons are parameterised. The first parameter size specified the size at which the icon should be rendered:

{{$:/core/images/picture|64px}}
<$transclude $tiddler="$:/core/images/picture" size="32px"/>

Affichera ceci :

Here is an example of dynamically resizing icons:

<$list filter="[range[24,56,8]]" variable=iconSize>
<$text text={{{ [<iconSize>addsuffix[px]] }}} />
<$transclude $tiddler="$:/core/icon" size=<<iconSize>>/>
</$list>

Affichera ceci :

24px 32px 40px 48px 56px

Some icons take further parameters to customise how they are rendered. For example, the $:/core/images/new-journal-button icon takes an additional parameter day that specifies the day of the month that should be shown on the calendar. It defaults to the current date if not specified

{{$:/core/images/new-journal-button|48px|17}}
<$transclude $tiddler="$:/core/images/new-journal-button" day="17"/>

Affichera ceci :

17

17

The core icons are implemented as embedded SVG elements, and not as full-blown SVG images. This means that they can be styled using CSS. For example, the CSS property fill can be used to change the colour of the icons. For example:

<span style="fill: red;">{{$:/core/images/opacity}}</span>

Affichera ceci :

Core Macros

 21 février 2015 à 22h20

Variables du noyau

 19 juin 2015 à 17h36

cos Operator

 21 octobre 2021 à 23h29
purposecalculate the cosine value of a list of angles (given in radians)
inputa selection of titles
outputthe cosine of the input angles (numeric value between -1 and 1)

Learn more about how to use Filters

Depuis : 5.1.21 See Mathematics Operators for an overview.

Examples

cos Operator (Examples)

 20 octobre 2021 à 15h21

[[2]cos[]]

=1 =2 =3 =4 +[cos[]]

count Operator

 8 février 2017 à 20h09
purposecount the number of entries in a list
inputa selection of titles
outputa new list containing the number of items in the input list as a decimal string

Learn more about how to use Filters

The number of the entries in the input list is counted and a decimal representation returned as a single string.

Examples

count Operator (Examples)

 8 février 2017 à 20h10

[tag[HelloThere]count[]]

CountWidget

 31 décembre 2018 à 13h01

Introduction

The count widget displays the number of unique items in the output of specified filter expressions.

Content and Attributes

The content of the <$count> widget is ignored.

AttributeDescription
filterThe filter expression to count

Example

There are <$count filter="[tag[Examples]]"/> tiddlers tagged with Examples

Affichera ceci :

There are 9 tiddlers tagged with Examples

Générer un format d'export personnalisé

 14 juin 2015 à 16h14

Pour créer un format d'export personnalisé qui exporte les tiddlers comme du contenu textuel brut :

  1. Créer un tiddler avec les champs suivant :
    • tags: $:/tags/Exporter
    • description: Description de l'export
    • extension: l'extension fichier par défaut pour ce format d'export (incluant le point ; par exemple .tid)
  2. Intégrer le contenu suivant :
\define renderContent()
{{{ $(exportFilter)$ ||$:/core/templates/plain-text-tiddler}}}
\end
<<renderContent>>

La variable exportFilter contient un filtre définissant quels tiddlers seront exportés.

Creating a splash screen

 27 septembre 2018 à 9h44

By default, TiddlyWiki displays a blank screen while it is loading. You can add a special "splash screen" that is displayed while the wiki loads.

Larger TiddlyWiki files and those loaded over a slow network connection may take a little time to load. Once fully loaded, performance improves, because everything is now running entirely within the browser. Using a splash screen ensures people know the loading process is taking place, reducing the chance they will leave the page.

In order for the splash screen to be displayed before TiddlyWiki is initialised or decrypted, it is embedded as static HTML/CSS within the TiddlyWiki HTML file. This is done with the SystemTag: $:/tags/RawMarkupWikified/TopBody, or any of the other system tags beginning with $:/tags/RawMarkup.

In order to remove the splash screen when the wiki has finished loading, the HTML should be wrapped in a container with the special class tc-remove-when-wiki-loaded. Any DOM elements with this class are automatically deleted by the core once the wiki has loaded.

Here's an example of a simple splash screen that just displays the text Loading. To use it, copy the text into a new tiddler, give it the type "text/plain" and the tag "$:/tags/RawMarkupWikified/TopBody":

<div class="tc-remove-when-wiki-loaded">
Loading...
</div>

If the tiddler is given the WikiText type text/vnd.tiddlywiki then the contents are wikified as the file is saved, allowing transclusion etc. For example, here's an example that quotes the site title in the loading message. To use it, copy the text into a new tiddler, give it the type "text/vnd.tiddlywiki" and the tag "$:/tags/RawMarkupWikified/TopBody":

\rules only filteredtranscludeinline transcludeinline
<div class="tc-remove-when-wiki-loaded">
Please wait while {{$:/SiteTitle}} is loading
</div>

The \rules directive is used to limit the wikitext syntax that is recognised to the two forms of inline transclusion. This avoids accidental wikification of tiddler content.

There is a more complex example splash screen using CSS animations and images configured in this wiki: see $:/SplashScreen

Créer et modifier des tiddlers

 21 février 2022 à h22

Créer des tiddlers

Vous créez un tiddler soit en cliquant sur le bouton du menu latéral, soit en cliquant sur un lien vers un tiddler absent. Les liens vers les tiddlers absents sont affichés en italique bleu.

Voir aussi :

Modifier des tiddlers

Pour modifier un tiddler existant, cliquez sur le bouton en haut et à droite du tiddler.

Mode ébauche

Quand vous créez un nouveau tiddler ou modifiez un existant, le tiddler passe en mode ébauche. Ce mode propose un panneau de contrôle pour apporter différents types de modifications. Il a plusieurs parties, de bas en haut :

  • Le champ titre - pour modifier le titre du tiddler
  • Le sélecteur de tags - pour ajouter ou supprimer des tags. Lors de la saisie d'un tag, une liste déroulante affiche les tags correspondant sous forme de complétions. Vous pouvez choisir dans cette liste ou créer un tag entièrement nouveau. Puis cliquez sur le bouton ajouter ou utilisez la touche Entrée pour ajouter le tag au tiddler. Chaque tag est affiché sous forme d'une pilule colorée. Cliquez le "×" d'une pilule pour supprimer le tag
  • La zone de texte - pour modifier le contenu principal du tiddler. Cliquez sur le bouton afficher la prévisualiation ( / ) pour visualiser l'apparence des modifications
  • Le sélecteur de type - pour afficher vos tiddlers dans un format spécial, comme une image. Voir ContentType pour la liste des options. Le choix par défaut est text/vnd.tiddlywiki, qui indique que le tiddler contient du WikiTexte
  • Le sélecteur de champ - pour ajouter ou supprimer des champs du tiddler. Par exemple, si vous modifiez un tiddler utilisé comme tag par d'autres tiddlers, vous pouvez ajouter un champ ''list'' pour modifier l'ordre dans lequel ces tiddlers seront listés

Confirmer, annuler ou supprimer

Quand vous avez terminé les modifications, cliquez sur le bouton en haut et à droite du tiddler :

  • Le bouton confirmer () mémorise vos modifications dans le tiddler et quitte le mode ébauche. Si votre wiki est configuré en Sauvegarde automatique, vos modifications seront enregistrées de façon permanente. Autrement elles sont mémorisées temporairement dans votre navigateur web, et vous les perdrez si vous fermez votre page TiddlyWiki sans avoir cliqué sur le bouton principal pour Enregistrer () dans le menu latéral.
  • Le bouton annuler () ignore vos modifications (après demande de confirmation) et quitte le mode ébauche.
  • Le bouton supprimer () supprime tout le tiddler (après demande de confirmation).

Créer des tiddlers journaux

 20 juin 2015 à 7h18

Introduction

Les tiddlers journaux sont des tiddlers dont le titre est composé d'une date et/ou d'une heure. Ils sont très utiles à l'enregistrement d'informations horodatées.

Vous pouvez ajouter des tags à votre tiddler journal pour le relier à d'autres tiddlers ce qui aidera à établir des relations entre les éléments d'information.

Par exemple, vous pourriez utiliser un tiddler journal appelé 10 Octobre 2014 pour enregistrer les idées et les informations capturées en ce jour particulier. Les tags Shopping et Londres mentionnant ce qui concerne le shopping à Londres.

Création d'un tiddler journal

La façon la plus simple de créer un tiddler journal est un clic sur le bouton nouveau journal dans l'onglet Outils du menu latéral. Si vous utilisez souvent le bouton, cliquez sur la case à cocher proche ce qui le placera juste au dessus de la zone de recherche.

Le bouton nouveau journal génère un journal correspondant à un tiddler vierge avec un tag Journal et un titre mentionnant la date du jour. Si un tiddler journal avec cette date existe déjà, il sera ouvert pour modification.

Création d'un tiddler journal tagué

Une suite d'actions courante sera la création (ou la réouverture) d'un tiddler journal du jour tagué avec le titre d'un autre tiddler. Cela pourra être effectué par le bouton nouveau journal ici de la barre d'outil du tiddler autre. Vous trouverez ce bouton dans l'onglet Outils du panneau d'information du tiddler.

Par exemple, lors de la révision d'un tiddler appelé Oxford Street , vous pourriez vous rendre compte de sa pertinence pour la préparation de votre tournée des magasins. Cliquer sur le bouton nouveau journal, ici dans le tiddler Oxford Street pour générer une entrée du journal étiquetée du tag Oxford Street.

Personnalisation des tiddlers journaux

Pour régler la façon dont les nouvelles entrées des journaux sont créés, rendez-vous à l'onglet Fondamentaux sous Info dans le panneau de contrôle:

  • Gabarit pour les titres des tiddlers journaux spécifie la façon dont ces tiddlers seront nommés, par une chaine de format date. Le réglage par défaut sur DDth MMM YYYY permet aux nouvelles entrées d'avoir des titres de la forme "10 Octobre 2014"
  • Tags pour les nouveaux tiddlers journaux spécifie les tags que contiendront automatiquement les nouveaux journaux. Par exemple: Journal [[Vacances d'été]]

Astuce: si vous souhaitez créer un tiddler journal différent à chaque fois que vous cliquerez sur nouveau journal (et ce plusieurs fois dans la même journée), vous pourriez inclure l'heure dans le format du titre, par exemple de cette façon AAAA-0MM-0DD au 0hhh0mm'0ss''.

Une autre astuce utile est d'inclure $(currentTiddler)$ quelque part dans le format du titre. Ainsi, si vous cliquez sur nouveau journal ici dans plusieurs tiddlers différents, les titres de chacun de ces tiddlers feront partie du nom des entrées de journal qui en résultera.

Creating new toolbar buttons

 26 novembre 2021 à 16h29

Let's say you have a skeleton tiddler called 'Recipe template', and you want to have a button available in the tiddler ViewToolbar to create new recipe tiddlers on demand. This will require the following steps:

  1. You will want an image for your button. If none of the core images (shadow tiddlers with the prefix $:/core/images/) work for you, then you will need to create or acquire an SVG image (for example, one of the images at http://flaticon.com), drag it into your file so that it becomes a tiddler, edit the tiddler and adjust the height and width to 22px
  2. You will want to create the tiddler that contains your tiddler. Create it, title it, and add the button code (see the code at the bottom of this tiddler for an example, with hints where you will need to adapt it). Tag it $:/tags/ViewToolbar
  3. You will need to create a tiddler that tells TiddlyWiki whether your button should be visible in the toolbar or hidden. Let's title it $:/config/ViewToolbarButtons/Visibility/Recipe. Type show into the text area, and save. If you want to hide it, type hide into the text area and save. The button will also be accessable from the ControlPanel : Appearance : Toolbars : ViewToolbar tab
  4. You will want to position the button properly. Open the tiddler $:/tags/ViewToolbar and insert your button tiddler's title in the appropriate place in the list field.
\define newHereButtonTags()
[[$(currentTiddler)$]]
\end
\define newHereButton()
<$button class=<<tv-config-toolbar-class>>>
<$action-sendmessage
  $message="tm-new-tiddler"
$param="TITLE OF YOUR SKELETON BUTTON"
title="New tiddler"
  tags=<<newHereButtonTags>> />
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
{{TITLE OF YOUR SVG IMAGE TIDDLER}}
</$list>
<$list filter="[<tv-config-toolbar-text>match[yes]]">
<span class="tc-btn-text"><$text text="CAPTION FOR YOUR BUTTON"/></span>
</$list>
</$button>
\end

<<newHereButton>>

Créer des déroulés imbriqués

 14 juin 2015 à 11h02

Cet exemple montre comment créer un déroulé imbriqué avec un tiddler indépendant du déroulé principal.

Voilà le code :

<$navigator story="MySubStoryList" history="MySubHistoryList">

Cliquez sur ce lien pour commencer: HelloThere

<$list filter="[list[MySubStoryList]]" history="MySubHistoryList">
<div>

! <$button message="tm-close-tiddler" class="tc-btn-invisible">{{$:/core/images/close-button}}</$button> <$view field="title"/>

<$transclude/>
</div>
</$list>

</$navigator>

Notez comment vous pouvez ouvrir le tiddler Bienvenue dans un déroulé imbriqué en cliquant sur le lien suivant. Les liens du déroulé imbriqué s'ouvre indépendament du déroulé principal.

Cliquez sur ce lien pour commencer : Bienvenue

csvtiddlers Macro

 21 février 2015 à 15h13

The csvtiddlers macro returns the fields of a selection of tiddlers in CSV form, with one record (row) per tiddler.

An example can be seen in the template tiddler for CSV exports.

Parameters

filter
A filter selecting which tiddlers to include
format
Reserved for future extension. Should be set to quoted-comma-sep

Tiddler courant

 24 juin 2015 à 10h26

Le tiddler courant fournit le contexte dans lequel plusieurs aspects de Wikitext sont interprétés.

Par exemple, {{!!title}} se réfère à la valeur du champ title du tiddler devenu courant, quel que soit-il. Cette technique peut être utilisée pour créer des tiddlers gabarit d'usage général.

Le titre du tiddler courant peut toujours être trouvé dans la variable currentTiddler.

Les deux façons les plus communes de modifier le tiddler courant sont :

  • le widget $tiddler
  • le widget $list (quand son attribut variable n'a pas été modifié)

Le tiddler courant n'est cependant pas souvent le même que le tiddler en cours d'affichage ou d'édition.

Variable currentTiddler

 22 juin 2015 à 9h36

La variable currentTiddler contient le titre du tiddler en cours.

Plusieurs aspects de WikiText ont ce tiddler en contexte. Comme résultat, dans un widget $list ou via un tiddler gabarit, il n'est pas souvent nécessaire de spécifier explicitement le titre du tiddler.

Comparer avec storyTiddler.

Exemples

Variable currentTiddler (Exemples)

 21 juin 2015 à 14h59

Les exemples suivants ont une signification identique :

<$view field=title/>
<$view tiddler=<<currentTiddler>> field=title/>

Cet exemple montre comment le widget $list modifie le tiddler en cours :

<ol>
<$list filter="[prefix[J]]">
<li><<currentTiddler>></li>
</$list>
</ol>

Custom data-styles

 11 avril 2018 à 18h39

[data-tiddler-title="Custom styles by data-tiddler-title"] {
  border: 1px solid blue;
}[data-tags*="example-test"] {
  border: 2px solid pink;
}[data-tags*="example-hardlinebreaks"] .tc-tiddler-body {
  word-break: normal;
  word-wrap: break-word;
  white-space: pre-wrap;
}[data-tags*="data-tags-styles"] .tc-tiddler-body {
  display: block;
  padding: 14px;
  margin-top: 1em;
  margin-bottom: 1em;
  word-break: normal;
  word-wrap: break-word;
  white-space: pre-wrap;
  background-color: #f5f5f5;
  border: 1px solid #cccccc;
  padding: 0 3px 2px;
  border-radius: 3px;
  font-family: Monaco, Consolas, "Lucida Console", "DejaVu Sans Mono", monospace;
}

Custom styles by data-tags

 11 avril 2018 à 18h39

Attribute: data-tags

Depuis : 5.1.16

The TiddlyWiki core adds several attributes to the rendered content. These make it possible to apply custom styles to tiddlers.

For example this tiddler is tagged: and so the attribute looks like this:

data-tags="[[How to apply custom styles]] example-test"

Important: Tiddler tags are not sorted so the order in the rendered output may be different!

Examples

The following CSS is defined in Custom data-styles and creates a pink border for all tiddlers (including this one) tagged with example-test.

[data-tags*="example-test"] {
  border: 2px solid pink;
}

Styling Stylesheets

So to display tiddlers tagged: data-tags-styles in a decent way we can use the following code. (I could have used: $:/tags/Stylesheet, but that would affect all stylesheets in this wiki, which is not intended. amt ;)

Important: Don't forget to also specify .tc-tiddler-body or the whole tiddler, including the title, will be changed! see: Custom data-styles

[data-tags*="data-tags-styles"] .tc-tiddler-body {
  display: block;
  padding: 14px;
  margin-top: 1em;
  margin-bottom: 1em;
  word-break: normal;
  word-wrap: break-word;
  white-space: pre-wrap;
  background-color: #f5f5f5;
  border: 1px solid #cccccc;
  padding: 0 3px 2px;
  border-radius: 3px;
  font-family: Monaco, Consolas, "Lucida Console", "DejaVu Sans Mono", monospace;
}

Hard Linebreaks

This mechanism may be handy for users who want to write prose text! See: Hard Linebreaks with CSS

More Possibilities

[attr]
Represents an element with an attribute name of attr.
[attr="value"]
Represents an element with an attribute name of attr and whose value is exactly "value".
[attr~="value"]
Represents an element with an attribute name of attr whose value is a whitespace-separated list of words, one of which is exactly "value".
[attr|="value"]
Represents an element with an attribute name of attr. Its value can be exactly “value” or can begin with “value” immediately followed by “-” (U+002D). It can be used for language subcode matches.
[attr^="value"]
Represents an element with an attribute name of attr and whose first value is prefixed by "value".
[attr$="value"]
Represents an element with an attribute name of attr and whose last value is suffixed by "value".
[attr*="value"]
Represents an element with an attribute name of attr and whose value contains at least one occurrence of string "value" as substring.
[attr "operator value" i]
Adding an i (or I) before the closing bracket causes the value to be compared case-insensitively (for characters within the ASCII range).

Learn more at: Attribute selectors - CSS or CSS-Specification

Custom styles by data-tiddler-title

 11 avril 2018 à 18h39

Attribute: data-tiddler-title

Depuis : 5.1.16

The TiddlyWiki core adds several attributes to the rendered content. With those attributes it's possible to apply custom styles to the tiddler content.

For example this tiddler is named: "Custom styles by data-tiddler-title" so the attribute looks like this:

data-tiddler-title="Custom styles by data-tiddler-title"

Examples

The following CSS is defined in Custom data-styles and creates a blue border for exactly this tiddler.

[data-tiddler-title="Custom styles by data-tiddler-title"] {
  border: 1px solid blue;
}

To create a green border for every tiddler that starts with $:/ aka system tiddlers, you'd need to use CSS like so: (not applied here but you can experiment with it! )

[data-tiddler-title^="$:/"] {
  border: 1px solid green;
}

More Possibilities

[attr]
Represents an element with an attribute name of attr.
[attr="value"]
Represents an element with an attribute name of attr and whose value is exactly "value".
[attr~="value"]
Represents an element with an attribute name of attr whose value is a whitespace-separated list of words, one of which is exactly "value".
[attr|="value"]
Represents an element with an attribute name of attr. Its value can be exactly “value” or can begin with “value” immediately followed by “-” (U+002D). It can be used for language subcode matches.
[attr^="value"]
Represents an element with an attribute name of attr and whose first value is prefixed by "value".
[attr$="value"]
Represents an element with an attribute name of attr and whose last value is suffixed by "value".
[attr*="value"]
Represents an element with an attribute name of attr and whose value contains at least one occurrence of string "value" as substring.
[attr "operator value" i]
Adding an i (or I) before the closing bracket causes the value to be compared case-insensitively (for characters within the ASCII range).

Learn more at: Attribute selectors - CSS or CSS-Specification

Custom styles by user-class

 11 avril 2018 à 18h39

Tiddler Field: class Depuis : 5.1.16

The tag manager allows us to set a tiddler color field, that is used to define the "tag-pill" colour. Since: Depuis : 5.1.16 we can define a class field, that is directly inserted into the ViewTemplate and it can be used for styling:

title: anyName
tags: $:/tags/Stylesheet
class: myClass

Every tiddler, that has a class field can be styled that way!

.myClass {
  border: 2px solid blue;
}

Learn more at: How to apply custom styles

Custom Styles FAQ

 11 avril 2018 à 18h39

Custom tag pill styles

 8 juin 2023 à 13h34

Attribute: data-tag-title

Depuis : 5.2.0 The attribute data-tag-title was added to tag pills visible in the tiddler view template.

Depuis : 5.3.0 The attribute was added to every tag pill visible in the standard TiddlyWiki UI. Especially the edit template tag list, the tag-picker dropdown, the Right sidebar -> More -> Tags tab and the $:/TagManager

The data-tag-title HTML attribute only contains the tag-title visible in the tag pill. It can be used to style the tag-pill.

If you want to style the whole tiddler have a look at: Custom styles by data-tiddler-title

Examples

If you use the following CSS in a new tiddler tagged: $:/tags/Stylesheet every tag that starts with a # will have a new border radius. So those tags stand out in contrast to the default tags.

You have to define both CSS rules, due to the existing UI structure to catch all tag-pills in the existing TW UI.

[data-tag-title^="#"] .tc-tag-label,
[data-tag-title^="#"].tc-tag-label {
   border-radius: 3px;
}

More Possibilities

[attr]
Represents an element with an attribute name of attr.
[attr="value"]
Represents an element with an attribute name of attr and whose value is exactly "value".
[attr~="value"]
Represents an element with an attribute name of attr whose value is a whitespace-separated list of words, one of which is exactly "value".
[attr|="value"]
Represents an element with an attribute name of attr. Its value can be exactly “value” or can begin with “value” immediately followed by “-” (U+002D). It can be used for language subcode matches.
[attr^="value"]
Represents an element with an attribute name of attr and whose first value is prefixed by "value".
[attr$="value"]
Represents an element with an attribute name of attr and whose last value is suffixed by "value".
[attr*="value"]
Represents an element with an attribute name of attr and whose value contains at least one occurrence of string "value" as substring.
[attr "operator value" i]
Adding an i (or I) before the closing bracket causes the value to be compared case-insensitively (for characters within the ASCII range).

Learn more at: Attribute selectors - CSS or CSS-Specification

Custom Widgets

 21 septembre 2023 à 19h03

Introduction

Depuis : 5.3.0 A custom widget is a special kind of procedure that can be called using the same syntax as widgets.

Custom widgets can also be used to override built-in JavaScript widgets to customise their behaviour.

Defining Custom Widgets

Custom widgets are usually defined with the Pragma: \widget:

\widget $my.widget(attribute:"Default value")
This is the widget, and the attribute is <<attribute>>.
\end

The name of the widget must start with a dollar sign. If it is a user defined widget that does not override an existing widget then it must include at least one period (dot) within the name (for example $my.widget or $acme.logger).

Note that the Pragma: \whitespace setting is inherited from the parsing context in which the procedure definition occurs. That means that a tiddler containing multiple procedure definitions only needs a single whitespace pragma at the top of the tiddler, and the setting will be automatically inherited by the procedure definitions without needing the pragma to be repeated.

Using Custom Widgets

Custom widgets are called in the same way as ordinary built-in widgets:

<$my.widget/>

<$my.widget attribute="The parameter"/>

The attributes that are specified in the widget call are made available as parameter variables.

Accessing Content of Custom Widgets

Within the definition of a custom widget the content of the calling widget is available via the <$slot $name="ts-raw"/> widget. The contents of the $slot widget is used as the default content if the widget was called without any content.

For example:

\widget $my.widget(one:'Jaguar')
<$text text=<<one>>/>
<$slot $name="ts-raw">
	Whale
</$slot>
\end

<$my.widget one="Dingo">
	Crocodile
</$my.widget>

<$my.widget/>

Affichera ceci :

Dingo Crocodile

Jaguar Whale

How Custom Widgets Work

Custom widgets are implemented as a special kind of variable. The only thing that distinguishes them from ordinary variables is the way that they can be called as a custom widget with attributes mapped to parameters.

Overriding Core JavaScript Widgets

Custom widgets can use the $genesis widget to invoke the original widget, bypassing the override. For example, here we override the $codeblock widget to add ≤≥ symbols around each string of text.

\widget $codeblock(code)
<$genesis $type="$codeblock" $remappable="no" code={{{ [<code>addprefix[≤]addsuffix[≥]] }}}/>
\end

<$codeblock code="Kangaroo"/>

<$codeblock code={{$:/SiteTitle}}/>

Python ` <$let test="Tiger"> <$codeblock code=<<test>>/> </$let> Affichera ceci&nbsp;: $$$text/vnd.tiddlywiki \widget $codeblock(code) <$genesis $type="$codeblock" $remappable="no" code={{{ [<code>addprefix[≤]addsuffix[≥]] }}}/> \end <$codeblock code="Kangaroo"/> <$codeblock code={{$:/SiteTitle}}/> Python <$let test="Tiger"> <$codeblock code=<<test>>/> </$let> $$$ </div>

Personnaliser TiddlyWiki

 29 novembre 2014 à 9h28

Une recherche aux résultats personnalisés

 16 juin 2015 à 11h31

Par défaut les résultats de la recherche du menu latéral sont affichés comme une simple liste de titres de tiddler. Ce résultat de recherche peut être personnalisé en ajoutant des plugins de visualisation qui les montreront de différentes façons. (les onglets sont affichés automatiquement si un résultat de recherche additionnel est détecté).

Les visualisations des résultats de recherche sont mémorisés dans les tiddlers étiquetés $:/tags/SearchResults. La liste de résultats de recherche par défaut est implémentée dans le tiddler système $:/core/ui/DefaultSearchResultList.

Pour créer un nouvel affichage de liste de recherche :

  1. Créez un nouveau tiddler étiqueté $:/tags/SearchResults
  2. Utilise la variable widget searchTiddler pour accéder au titre de chaque tiddler contenant les termes de la recherche en cours

Si vous voulez faire du nouvel affichage celui du résultat de recherche par défaut, créez un tiddler appelé $:/config/SearchResults/Default contenant le titre de cet affichage.

Voici un exemple d'affichage montrant les résultats dans l'ordre chronologique inverse :

\define searchResults()
<$set name="resultCount" value="""<$count filter="[!is[system]search{$(searchTiddler)$}]"/>""">

{{$:/language/Search/Matches}}

</$set>
<<timeline subfilter:"!is[system]search{$(searchTiddler)$}">>
\end
<<searchResults>>

Customising Tiddler File Naming

 3 août 2021 à 21h46

By default, a TiddlyWiki on Node.js instance using a wiki folder will create new tiddler files by using the sanitised and disambiguated title as filename. All filepath operations are relative to a default-tiddler-location which defaults to the wiki folder's tiddlers/ directory. This can be overridden by mapping a path in the wiki's tiddlywiki.info file, by using a default-tiddler-location property in the config object.

The default file extension of .tid is used for tiddlers that are missing the type field, or for tiddlers of type "text/vnd.tiddlywiki". Tidders of other types are saved according to their MIME types (defined at boot startup).

Both the logical path (directory and file name) and the file extension can be customised independently by creating optional tiddlers $:/config/FileSystemPaths and $:/config/FileSystemExtensions.

File System Paths

The logical path can be customised by creating a $:/config/FileSystemPaths tiddler containing one or more filter expressions, each on a line of its own. Every time a tiddler is saved to disk it is tested against each filter in turn, and the first output of the first filter to produce any output is taken as a logical path to be used for the tiddler file. If the logical path has changed a new file is created and the old file is deleted.

Tiddlers are limited to being written to the wiki folder, the path defined in the default-tiddler-location setting, or the specific path saved in the $:/config/OriginalTiddlerPaths tiddler (see tiddlywiki.files Files). Any error saving a tiddler to disk, with a logical path that does not start with the wiki folder's path the most common error, causes the filepath to be encoded via Javascript's encodeURIComponent() method and the tiddler is saved as this file in the wiki folder's default-tiddler-location.

Logical paths do not include the file-on-disk's extension (see below), and they can use / or \ as directory separator (when generating the physical path, this is replaced by the correct separator for the platform TiddlyWiki is running on). If none of the filters match, the logical path is simply the title with all occurrences of the characters /\<>~:"|?*^ replaced by _ in order to guarantee that the resulting path is legal on all supported platforms. Logical paths are also limited to 200 characters. If a file with this name already exists, a space and a number will be appended to the final filepath, and with the number incremented until an unused path is found.

Example

[is[system]!has[draft.of]removeprefix[$:/]addprefix[_system/]]
[is[draft]search-replace:g:regexp[/|\\],[_]addprefix[drafts/]]
[tag[task]addprefix[mytasks/]]
[!tag[externalnote]addprefix[wiki/]]
Note
All paths are relative to the wiki's default-tiddler-location.

This will store newly created system tiddlers that are not drafts of other tiddlers in ./_system/ (after stripping the $:/ prefix). Next, all drafts have the path separator characters in their titles replaced by "_" and are stored in ./drafts/. Then tiddlers tagged task are stored in a subdirectory ./mytasks/. Finally, all tidders not tagged with "externalnote" will match the final [!tag[externalnote]addprefix[wiki/]] storing these in ./wiki/. In this example, tiddlers tagged with "externalnote" have been imported using tiddlywiki.files Files with an "isEditableFile" flag set to true, causing the server to remember their original file path in the $:/config/OriginalTiddlerPaths tiddler.

Whenever a tiddler generates a $:/config/FileSystemPaths filter match, any / or \ in the tiddler title is mapped to a path separator. With the above filters, the non-system, non-draft tiddler titled some/thing/entirely/new (with no tags) will be saved to ./wiki/some/thing/entirely/new.tid (ie, the file new.tid in a directory called entirely/). Thus, $:/config/FileSystemPaths itself will end up in ./_system/config/FileSystemPaths.tid or .\_system\config\FileSystemPaths.tid, depending on the platform.

File System Extensions

Normally, the file system extension of a tiddler on disk is determined by the presence of field values containing newlines or field values that start or end with whitespace (other than the text field), in which case the single file ".json" tiddler file format is used.

If the tiddler does not have such field values, then the type field is referenced to find a matching file-type, with .tid used for tiddlers without a type value. The boot engine defines a set of these tiddler-type to file-type relationships in the $:/boot/boot.js tiddler. Search for // Add file extension information to find the section of code that defines these relationships.

The file extension of individual tidders can be customised by creating a tiddler $:/config/FileSystemExtensions containing one or more filter expressions, each on a line of its own. Every time a tiddler is saved to disk it is tested against these filters, and the first output of the first filter to produce any output is taken as the file extension to be used for the tiddler file. Extensions should always start with a leading dot (see example). If no filter matches, the default extension is used. If the extension has changed a new file is created and the old file is deleted.

Note
A result of ".tid" will force the tiddler to be written to disk as a single-file text tiddler. A result of ".json" will force the tiddler to be written to disk as a single file tiddler in json-format (a single tiddler fields object in an array), NOT as a tiddler of type "application/json". All other recognised file-types will be saved using their defined extension along with an accompanying *.meta file of the same name which describes all fields but the "text" field.

Example

[tag[.txt]then[.txt]]
[tag[.json]then[.json]]
[tag[.tid]then[.tid]]

This will cause all tidders that have the tag ".txt" to be saved at the filepath determined by the File System Paths filters, but with their text field saved as a *.txt file, and all other fields saved as a *.txt.meta file.

Next, all tiddlers that have the ".json" tag are saved as *.json files. Finally, all tiddlers that have tag ".tid" are saved as single files. If a tiddler matches none of the filters, the default extension determined by the tiddlers type field would be used.

Customising TiddlyWiki's user interface

 4 décembre 2021 à 12h00

TiddlyWiki’s user interface is designed to be highly extensible. Every element can be augmented, removed, or rearranged.

Several different mechanisms are used to achieve this:

  • special fields
  • special titles
  • special tags
  • cascades

Here we provide an overview of those mechanisms and how they relate together.

Special Fields

Special fields are used to assign an appearance or behaviour to individual tiddlers. They can be thought of as flags or values that directly control the tiddler to which they are applied.

For example:

  • Set the icon field to the title of an image tiddler to be used as the icon for this tiddler
  • Set the color field to a CSS colour that is then used for icons and tag pills associated with this tiddler
  • Set the hide-body field to yes to hide the view template body for this tiddler

See TiddlerFields for details of all the special fields.

Special Titles

Certain special titles identify configuration tiddlers that customise TiddlyWiki's appearance or behaviour. They can be thought of as global settings that affect an entire wiki.

For example:

Many of TiddlyWiki's configuration tiddlers are presented as options in $:/ControlPanel. Less commonly used configuration tiddlers do not have a user interface, but are documented in Hidden Settings.

Special Tags

Special tags assign special behaviour or appearance to all of the tiddlers to which they are applied. They can be thought of as establishing ordered lists of tiddlers that are processed or displayed in a particular way.

For example:

See SystemTags for details of all the special tags.

The entire TiddlyWiki user interface is constructed from lists formed from special system tags.

The ordering of these lists is determined by the order of tagged tiddlers rules. Users can re-order tags using drag and drop within a tag dropdown.

Cascades

Cascades provide a means to select one of multiple values based on flexible, extensible criteria. They can be thought of as a list of conditions that are evaluated in turn until one of them matches.

For example, the core uses the template $:/core/ui/ViewTemplate to display tiddlers in view mode, and $:/core/ui/EditTemplate to display tiddlers in edit mode. A cascade is used to choose which template to use for a particular tiddler:

  1. If the tiddler is a draft, then use $:/core/ui/EditTemplate
  2. Otherwise, use $:/core/ui/ViewTemplate

The list of conditions is defined via a special tag, making it possible to insert additional conditions anywhere in the list.

For example, a plugin might add a special template $:/plugins/example/map-template for tiddlers that have the tag $:/tags/Map by inserting an additional rule:

  1. If the tiddler is a draft, then use $:/core/ui/EditTemplate
  2. If the tiddler is tagged $:/tags/Map, then use $:/plugins/example/map-template
  3. Otherwise, use $:/core/ui/ViewTemplate

See Cascades for more details.

Customizing EditTemplate field rendering

 13 avril 2022 à 17h55

When editing a tiddler the EditTemplate normally renders fields as simple input boxes. To modify this behaviour, the cascade mechanism can be used. Via the Field Editor Cascade the name of the tiddler used for rendering the field editor can be specified. The content of this tiddler is transcluded to represent the content of the field.

To modify the appearance of all fields whose name ends with -date create a new tiddler and add the $:/tags/FieldEditorFilter tag to it. Add a list-before field and assign the value $:/config/FieldEditorFilters/default. Now you have to put the filter for the cascade into the tiddler's text field: [suffix[-date]then[$:/config/EditTemplateFields/Templates/dates]]. This will transclude the tiddler named $:/config/EditTemplateFields/Templates/dates to render the input elements for all fields with names matching the regular expression.

The variables currentTiddler, currentField and currentFieldName are set to pass information about the tiddler and field that are edited to the transcluded tiddler.

currentTiddlerThe tiddler that must be used to store the field value.
currentFieldThe field within the currentTiddler that must be used to store the field name. This is an opaque value hat may contain any field name (even text), use currentFieldName to make decisions based on the actual name of the currently edited field.
currentFieldNameThe name of the currently edited field.

For example, a tiddler containing the following WikiText would render the field as an HTML input element of the type date. This will show a date picker for the fields on all modern browsers:

<$edit-text tiddler=<<currentTiddler>> field=<<currentField>> tag="input" type="date" class="tc-edit-texteditor tc-edit-fieldeditor" placeholder="Set your date" tabindex={{$:/config/EditTabIndex}} cancelPopups="yes"/>

The currentField variable will be set to text for new fields. Make sure that your editor will handle this correctly. For example, by setting the tag attribute on the EditTextWidget. If you want to know the name of the currently edited/added field, use the currentFieldName variable.

The tabindex and cancelPopups attributes make sure the HTML input element behaves exactly the default elements provided by TiddlyWiki.

Not only the EditTextWidget can be used. A tiddler containing the following WikiText will render the field as a drop-down-list that allows the user to select the name of a tiddler. The name of the selected tiddler will be stored in the field.

<$select tiddler=<<currentTiddler>> field=<<currentField>> class="tc-edit-texteditor tc-edit-fieldeditor" cancelPopups="yes">
    <$list filter='[all[tiddlers]sort[title]]'>
        <option value=<<currentTiddler>>><$view field='title'/></option>
    </$list>
</$select>

The classes tc-edit-texteditor and tc-edit-fieldeditor should be used to style the input and select elements to match the theme of the TiddlyWiki installation.

Persistence of values when creating fields

When using multiple field editors for creating fields within the EditTemplate, every field editor tiddler returned by the Field Editor Cascade gets its own storage tiddler. This is done to prevent problems with incompatible values when the user is switching between fields governed by different field editors.

Example

There is a cascade that returns a special field editor for all fields starting with the string "my-". All other fields use the default field editor. If you type a new value into the "field value" input box and select any field not starting with "my-", the value will be kept. If you switch to a field, that starts with "my-", the "field value" input field will be empty again because a new type of field editor is used. If you now type a value and switch to another field starting with "my-" the value will be kept. If you switch to a field that does not start with "my-" the previously typed value (that was stored for the default editor) will reappear.

cycle Operator

 18 novembre 2020 à 19h21
purposetoggle in the input, the titles specified in the first operand in a cyclical manner
inputa list of items
parameterthe cycle operator accepts 1 or 2 parameters, see below for details
outputthe input list with the titles specified in the parameter toggled in a cyclical manner

Learn more about how to use Filters

Depuis : 5.1.23

The cycle operator requires at least one parameter.

[cycle[<titles>],[step-size]]
  • titles : a title list to toggle in the input list cyclically. If no title from the parameter is present in the input, the first title is added. If a title from the parameter is present in the input, it is replaced with the next title from the parameter. Note that all titles specified in this parameter should be unique.
  • step-size: (optional). Defaults to 1. Specifies the number of steps in the parameter list to move each time. Can be a negative number.

While the cycle operator interprets its first parameter as a list of titles to cycle through, the toggle Operator accepts an unlimited number of distinct parameters and offers similar functionality.

Examples

cycle Operator (Examples)

 18 novembre 2020 à 17h54

Cycle through a list of values to add as a tag:

<$action-listops $tiddler="target" $tags="+[cycle[todo soon now maybe done ]]" />

Cycle through a list of values to add as a tag, in reverse order:

<$action-listops $tiddler="target" $tags="+[cycle[todo soon now maybe done ],[-1]]" />

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]first[]] +[cycle{Days of the Week!!list}]

[list[Days of the Week]first[]] +[cycle{Days of the Week!!list},[2]]

Plugin D3

 15 juin 2015 à 7h51

Ce plugin intègre la célèbre bibliothèque de visualisation D3 au sein de TiddlyWiki.

Voir https://tiddlywiki.com/plugins/tiddlywiki/d3/

Tirets en WikiTexte

 22 avril 2022 à 14h56

En WikiTexte, les tirets se font avec :

  • deux caractères "moins" -- pour le tiret moyen ou semi-cadratin : –
  • trois caractères "moins" --- pour le tiret long ou cadratin : —

Data URI

 23 juin 2015 à 8h17

Une data URI est un moyen de stocker des données (telles qu'une image) d'une façon compatible avec les adresses utilisées par les pages web et les feuilles de styles pour accéder à des ressources externes.

La macro datauri peut être employée pour générer des data URIs via TiddlyWiki.

Tiddlers Data

 22 juin 2015 à 11h26

Un tiddler data est une mini-base de donnée contenue dans un tiddler.

Il existe deux formats standard :

D'autres formats de tiddler peuvent aussi être utilisés pour produire des blocs de données qui se comporteront comme des tiddlers data.

Utilisez TextReference pour rechercher une valeur par son nom. Par exemple, si un Tddler Dictionaire appelé JoursMois contient :

oct:31
nov:30
dec:31

... alors {{JoursMois##nov}} retournera la valeur 30.

C'est aussi vrai si MonthDays est un Tiddler JSON avec le contenu suivant :

{"oct":31,"nov":30,"dec":31}

Note: Il est actuellement possible de récupérer des données uniquement à partir des propriétés immédiates de l'objet racine d'un Tiddler JSON.

datauri Macro

 21 février 2015 à 22h28

The datauri macro returns a data URI for the content of a tiddler.

It is often used in stylesheet tiddlers to reference things like inline images and fonts:

background: url(<<datauri "Motovun Jack.jpg">>);

The data URI is automatically base64-encoded in the case of a non-text tiddler.

Parameters

title
The title of a tiddler, such as an image

Exemples

datauri Macro (Examples)

 21 février 2015 à 22h35

<style>
.jack {
	background: url(<$macrocall $name="datauri" title="Motovun Jack.jpg" $output="text/plain"/>);
	height: 300px;
}
</style>

<div class="jack"/>

The example has to invoke datauri through the $macrocall widget. It needs to prevent the macro's output from being parsed as WikiText, as that would transform the data URI into a $link widget and break the example. If the example was in a CSS tiddler, you could simply write:

background: url(<<datauri "Motovun Jack.jpg">>);

Champs date

 24 juin 2015 à 10h48

Certains champs de tiddler servent à mémoriser dates et heures.

Les deux champs dates standard sont created et modified.

Les valeurs des champs date sont des chaine de 17-caractères :

  • 4 chiffres pour l'année
  • 2 chiffres pour le mois
  • 2 chiffres pour le jour
  • 2 chiffres pour l'heure
  • 2 chiffres pour la minute
  • 2 chiffres pour la seconde
  • 3 chiffres pour la milliseconde

Pour éviter les problèmes découlant des différences de fuseau horaire, TiddlyWiki utilise toujours l'UTC.

À titre d'exemple, le champ created de ce tiddler a la valeur 20150117190213631.

Les dates peuvent être converties en d'autres formats d'affichage :

<$view field="created" format="date" template="DDD DDth MMM YYYY"/>

Affichera ceci :

Samedi 17 janvier 2015

Format des dates

 20 juin 2015 à 8h46

Le WidgetView accepte un attribut template qui permet de spécifier le format d'affichage des dates. A la chaine formatée se substituent les valeurs suivantes :

FormatValeur de Substitution
DDDJour de la semaine en entier (ex, "Monday")
dddJour de la semaine abrégé (ex, "Mon")
DDN° du jour dans le mois
0DDÉventuel préfixe d'un zéro
DDthAjout d'un suffixe
WWISO-8601 n° de la semaine
0WWÉventuel préfixe d'un zéro
MMMMois en entier (ex, "July")
mmmMois abrégé (ex, "Jul")
MMN° du mois
0MMÉventuel préfixe d'un zéro
YYYYAnnée en entier
YYAnnée sur 2 chiffres
wYYYYAnnée complète avec numéro de la semaine
wYYAnnée abrégée avec numéro de la semaine
hhHeures
0hhÉventuel préfixe d'un zéro
hh12Heures au format 12 heures
0hh12Éventuel préfixe d'un zéro
mmMinutes
0mmÉventuel préfixe d'un zéro
ssSecondes
0ssÉventuel préfixe d'un zéro
am/pmIndicateur AM/PM en minuscule
AM/PMIndicateur AM/PM en majuscule
TZDZone horaire
\xUtilisation du caractère d'échappement pour insérer des caractères sans interpréter le formatage

Notez que tout autre texte sera affiché sans générer de modification, ce qui permet d'utiliser des virgules, les deux points ou tout séparateur utile.

Exemples

ModèlesRésultats formatés
DDth MMM wYYYY16 Février 2011
DDth MMM \M\M\M YYYY16 Février MMM 2011
DDth mmm hh:mm:ss16 Fév 2011 11:38:42

datepicker plugin based on Pikaday, by kixam

 6 janvier 2021 à 15h10

An interactive date picker plugin based on Pikaday. A demo can be found here: http://kixam.github.io/TW5-datePicker/.

datepicker is a TiddlyWiki plugin that allows you to use a widget much like EditTextWidget to pick a date, and optionaly a time. It shows a nice interactive mini-calendar when clicked, allows you to set a date format for display, and is compatible with core date fields such as modified and created.

Days of the Week

 16 novembre 2021 à 22h12

This example tiddler is used to illustrate some of the Filter Operators.

It has a list field containing the following items:

days Operator

 
purposefilter the input by date
inputa selection of titles
suffixF = the name of a date field, defaulting to modified
parameterD = a { positive | negative } number of days, defaulting to 0
outputthose input tiddlers in which field F is D days in the { future | past } or any time { before | after } that, including { past | future }
! outputthose input tiddlers in which field F is at least D days in the { future | past }

Learn more about how to use Filters

Select tiddlers where a specified date field (default "modified") is within a specified date range. Time portion is ignored.

Examples

days Operator (Examples)

 

[days[-14]]
→ tiddlers modified within the last 14 days

[!days:created[-800]]
→ tiddlers created more than 800 days ago

The filter can be used to highlight new items in a list. For example:


<ul>
  <$list filter="[tag[ReleaseNotes]!<currentTiddler>!sort[modified]]">
    <li>
      <$link><$view field="title"/></$link>
         <$list filter="[<currentTiddler>days[-180]]"> @@color:red;^^new^^@@</$list>
         <$list filter="[<currentTiddler>days[-500]!days[-180]]"> @@color:black;^^recent^^@@</$list>
    </li>
  </$list>
</ul>

Affichera ceci :

Debugging Stylesheets

 25 novembre 2021 à 17h59

The core shadow tiddler $:/snippets/DebugStylesheets contains a simple tool for tracking down certain problems with mismatched brackets and other nested structures.

In the list below, any stylesheets containing an error will be marked with a red cross:

  • $:/_tw5.com-styles
  • $:/editions/fr-FR/CSS stylesheets/latex
  • $:/editions/fr-FR/CSS Stylesheets/mesStyles
  • $:/editions/fr-FR/CSS Stylesheets/utils
  • $:/editions/tw5.com/doc-styles
  • Custom data-styles

decodebase64 Operator

 
purposeapply base 64 decoding to a string
inputa selection of titles
outputthe input with base 64 decoding applied

Learn more about how to use Filters

Depuis : 5.2.6

See Mozilla Developer Network for details of base 64 encoding. TiddlyWiki uses library code from @nijikokun to handle the conversion.

The input strings must be base64 encoded. The output strings are binary data.

Examples

decodehtml Operator

 17 octobre 2016 à 16h29
purposeapply HTML decoding to a string
inputa selection of titles
outputthe input with HTML decoding applied

Learn more about how to use Filters

Depuis : 5.1.14

"HTML decoding" means replacing HTML entities that represent special characters with that character:

  • &amp; replaced with &
  • &nbsp; replaced with (non breaking space)
  • &lt; replaced with <
  • &gt; replaced with >
  • &quot; replaced with "

Examples

decodehtml Operator (Examples)

 17 octobre 2016 à 16h53

[[Title with &lt; angle brackets &gt;]] +[decodehtml[]]

[[Title with an &amp; ampersand]] +[decodehtml[]]

decodeuri Operator

 17 octobre 2016 à 16h29
purposeapply URI decoding to a string
inputa selection of titles
outputthe input with URI decoding applied

Learn more about how to use Filters

Depuis : 5.1.14

See Mozilla Developer Network for details of the decodeURI operation.

Examples

decodeuri Operator (Examples)

 17 octobre 2016 à 16h53

[[Title%20with%20Space]] +[decodeuri[]]

[[Title%20with%20Space]] [[Another%20title%20with%20Space]] +[decodeuri[]]

decodeuricomponent Operator

 17 octobre 2016 à 16h26
purposeapply URI component decoding to a string
inputa selection of titles
outputthe input with URI component decoding applied

Learn more about how to use Filters

Depuis : 5.1.14

See Mozilla Developer Network for details of the decodeURIComponent operation.

Examples

decodeuricomponent Operator (Examples)

 17 octobre 2016 à 16h53

[[Title%20with%20Space]] +[decodeuricomponent[]]

[[Title%20with%20Space]] [[Another%20title%20with%20Space]] +[decodeuricomponent[]]

DefaultTiddlers

 6 mars 2018 à 16h12

"Default tiddlers" refers to the list of tiddlers that is opened at startup in the browser if the address bar does not include a permalink).

At startup, the text of the system tiddler $:/DefaultTiddlers is retrieved and evaluated as a filter expression. The resulting list of titles is then inserted into the story river.

The control panel info/basics tab includes a text box for direct access to $:/DefaultTiddlers.

Définitions

 23 juin 2015 à 7h23

Définitions en WikiTexte

 22 avril 2022 à 1h04

Les définitions utilisables en HTML sont créées en utilisant successivement ; et : :

; Terme à définir
: Définition du terme
; Un autre terme
: Une autre définition

Affichera ceci :

Terme à définir
Définition du terme
Un autre terme
Une autre définition

Code HTML correspondant :

<dl><dt>Terme à définir</dt><dd>Définition du terme</dd><dt>Un autre terme</dt><dd>Une autre définition</dd></dl>

DeleteTiddlersCommand

 30 mai 2019 à 16h54

Depuis : 5.1.20 Supprime un groupe de tiddlers identifiés par un filtre.

--deletetiddlers <filtre>

Demo Tiddler List with Custom Story Tiddler Template

 4 décembre 2021 à 13h16

This is a demo tiddler with a custom story tiddler template that displays the tiddlers named in the list field as a fan.

See How to create a custom story tiddler template for details.

Demonstration: keyboard-driven-input Macro

 23 novembre 2021 à 3h45

The keyboard-driven-input Macro is used to create filtered lists that update as the user types. It also allows navigating the lists, and invoking macros using list items, with the keyboard.

It consists of an edit-text widget wrapped in keyboard widgets. There are keyboard widgets to listen for ((input-accept)), ((input-accept-variant)), and ((input-cancel)) keyboard shortcuts, but there is no default behaviour in response to these events; macros must be written to suit the use-case. There is also no default visualisation of the filtered options list.

Types of keyboard input handled by the keyboard-driven-input macro:

Non-configurable:

The following keyboard events invoke macros defined alongside keyboard-driven-input in $:/core/macros/keyboard-driven-input.

InputPurposeMacro
typing inputcomposing a string to be used within list filterskeyboard-input-actions
((input-up)) ( Up )temporarily selecting the previous item in the filtered listinput-next-actions with parameters afterOrBefore="before", reverse="reverse[]"
((input-down)) ( Down )temporarily selecting the next item in the filtered listinput-next-actions with afterOrBefore="after", reverse=""

All of the above actions generate or modify data which keyboard-driven-input keeps in tiddlers specified using the macro's parameters. The data can then be accessed not only by the macros invoked by keyboard shortcuts, but also outside of these, e.g. a macro to display the filtered list(s).

Configurable through parameters:

The following keyboard events invoke macros whose names are specified in parameters to keyboard-driven-input. The intended purpose is suggested by the parameter name, but there are no default macros defined within $:/core/macros/keyboard-driven-input.

Keyboard shortcut descriptor Key combinationParameter
((input-accept)) Enter inputAcceptActions
((input-accept-variant)) ctrl-Enter inputAcceptVariantActions
((input-cancel)) Escape inputCancelActions

keyboard-driven-input can be seen in action as part of various core features in TiddlyWiki, e.g.: the search feature, the tag-picker Macro, and dropdown interfaces in the Editor toolbar such as Insert link.

Minimal ingredients for a demonstration

Keeping in mind that the keyboard-driven-input macro does not, by itself, display list results, or do anything with a selected option, a minimal demonstration of the keyboard-driven-input macro requires:

  1. a tiddler, containing a filter whose results depend on the user's text input, to generate the options from which the user can select
  2. several parameters:
    • a filter to return the title of the tiddler where the filter described in step 1 can be found, and
    • tiddler titles to use for storing state information in response to input events. These tiddlers do not need to exist already. If they do exist, the keyboard-driven-input macro will change their contents.

The search filter(s)

By default, keyboard-driven-input will look for filters in the first-search-filter and second-search-filter fields of a tiddler (whose title is specified by a parameter discussed below).

This filter can refer to a variable called userInput, which shows the contents of the edit-text widget, as stored in a state tiddler (discussed below), at the time of the latest Up or Down event.

Note: If this filter is to be referred to in a context outside the keyboard-driven-input macro (such as in a popup showing the filtered options), the variable userInput has to be defined in those contexts as well (by reading it from a state tiddler).

Minimal parameters

Parameter nameNotes
configTiddlerFilterThis is a filter, rather than a tiddler title, allowing conditional behaviour (e.g. checking for an active tab, or preferring a filter that may not be present, with a fallback).
The title returned must belong to an existing tiddler, containing at least one filter with which keyboard-driven-input can generate its results list.
tiddlerThis tiddler contains either the typed input, or the instantaneous result selection, depending upon the most recent event. It is updated with each keystroke in the edit-text widget, and when the user uses the Up or Down key to cycle through filtered results.
storeTitleThis tiddler always reflects the user input (transcluded from the tiddler tiddler after each keystroke into the edit-text widget).
selectionStateTitleThis tiddler is updated on Up or Down events and contains either the user input with the suffix -userInput, or the instantaneous selection with the suffix -primaryList or -secondaryList, depending on which of up to two filters generated the list it came from.

Demonstration setup

I have created a tiddler called kdi-demo-configtid and put the following filter into its first-search-filter field:

[!is[system]search:title<userInput>sort[]].

This filters for non-system tiddlers whose titles contain the text the user has typed.

To use the above filter with keyboard-driven-input, the value of the parameter configTiddlerFilter should be a filter that returns kdi-demo-configtid.

I can select tiddler, storeTitle, and selectionStateTitle fairly arbitrarily (just making sure not to use titles of tiddlers that I do not want changed).

This demonstration can now be invoked with the following macro call:

<$macrocall $name=keyboard-driven-input 
        tiddler="kdi-demo-tiddler"
        storeTitle="kdi-demo-storeTitle" 
        selectionStateTitle="kdi-demo-selectionStateTitle" 
        configTiddlerFilter="[[kdi-demo-configtid]]" 
 />

Demo

Try typing in here:

Observe the changes in the various state tiddlers in the below table. Use Up and Down keys to navigate among filter results. If nothing changes, try a shorter input to widen the filter. If the input has zero length, the list will contain all non-system tiddlers.

Parameter nameTiddler titleContents of text field of the tiddler
tiddlerkdi-demo-tiddler
storeTitlekdi-demo-storeTitle
selectionStateTitlekdi-demo-selectionStateTitle

The keyboard-driven-input macro has many parameters available, including all the attributes of the enclosed edit-text widget, which make it very flexible in how it is used and how results can be displayed and interacted with.

See also: Customising search results and $:/core/ui/DefaultSearchResultList

Obsolète - définition

 3 mars 2022 à h23

Avant tout : Restez calme !

L'obsolescence est, dans le domaine du développement logiciel, la situation où une ancienne fonctionnalité est considérée comme dépassée au regard d'un nouveau standard, et où, bien qu'elle soit conservée dans les versions plus récentes (par souci de rétro-compatibilité, et pour donner aux développeurs le temps de mettre leur code source en conformité), elle pourrait disparaître à l'avenir, si bien qu'il est recommandé d'en abandonner l'usage.

wikipedia

Pour TiddlyWiki, cela signifie que vous ne devriez plus utiliser ce mécanisme pour du nouveau contenu, et que vous devriez mettre à jour votre contenu existant !

Les fonctionnalités obsolètes sont identifiées avec un style particulier. Voir : Des styles personnalisés selon les tags

Tiddlers étiquetés $:/deprecated :

deserialize Operator

 27 juin 2023 à 10h41
purposeextract JSON representation of tiddlers from the input strings
inputa selection of strings
parameterthe deserializer module to be used to extract tiddlers from the input
outputJSON representations of tiddlers extracted from input titles.

Learn more about how to use Filters

Depuis : 5.3.0

Deserializer modules parse text in various formats into their JSON representation as tiddlers. The deserializer modules available in a wiki can be seen using the deserializers operator and can be used with the deserialize Operator.

The TiddlyWiki core provides the following deserializers:

DeserializerDescription
(DOM)Extracts tiddlers from a DOM node, should not be used with the deserialize[] operator
application/javascriptParses a JavaScript module as a tiddler extracting fields from the header comment
application/jsonParses JSON into tiddlers
application/x-tiddlerParses the .tid file format as a tiddler
application/x-tiddler-html-divParses the <DIV>.tiddler file format as a tiddler
application/x-tiddlersParses the MultiTiddlerFile format as tiddlers
text/cssParses CSS as a tiddler extracting fields from the header comment
text/htmlParses an HTML file into tiddlers. Supports TiddlyWiki Classic HTML files, TiddlyWiki5 HTML files and ordinary HTML files
text/plainParses plain text as a tiddler

Examples

deserialize Operator (Examples)

 2 juin 2023 à 11h50

This example uses the predefined variable html-data:

<!doctype html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<title>Test Data</title>
</head>
<body>

<!--~~ Ordinary tiddlers ~~-->
<div id="storeArea" style="display:none;"><div title="Hello &quot;There&quot;" type="text/vnd.tiddlywiki">
<pre>Abacus</pre>
</div>
</div>
<script class="tiddlywiki-tiddler-store" type="application/json">[{"title":"Hello \"There\"","text":"Calculator"},{"title":"Hello \"There\"","text":"Protractor"}]</script>
</body>
</html>

[<html-data>deserialize[text/html]]

Deserializers

 27 juin 2023 à 10h43

Deserializer modules parse text in various formats into their JSON representation as tiddlers. The deserializer modules available in a wiki can be seen using the deserializers operator and can be used with the deserialize Operator.

The TiddlyWiki core provides the following deserializers:

DeserializerDescription
(DOM)Extracts tiddlers from a DOM node, should not be used with the deserialize[] operator
application/javascriptParses a JavaScript module as a tiddler extracting fields from the header comment
application/jsonParses JSON into tiddlers
application/x-tiddlerParses the .tid file format as a tiddler
application/x-tiddler-html-divParses the <DIV>.tiddler file format as a tiddler
application/x-tiddlersParses the MultiTiddlerFile format as tiddlers
text/cssParses CSS as a tiddler extracting fields from the header comment
text/htmlParses an HTML file into tiddlers. Supports TiddlyWiki Classic HTML files, TiddlyWiki5 HTML files and ordinary HTML files
text/plainParses plain text as a tiddler

deserializers Operator

 27 juin 2023 à 10h42
inputignored
parameternone
outputthe title of each available deserializer

Learn more about how to use Filters

Depuis : 5.2.0

You can specify a specific deserializer for a DropzoneWidget to use

Examples

deserializers Operator (Examples)

 6 mai 2021 à 12h54

[deserializers[]]

Édition en Allemand (Allemagne)

 3 décembre 2014 à 17h51

Édition en Allemand (Autriche)

 3 décembre 2014 à 17h51

Die österreichische Übersetzung von TiddlyWiki ist verfügbar unter:

Siehe auch: Deutsch (Deutschland) Edition.

Développeurs

 17 février 2022 à 17h48

Plusieurs ressources permettent aux développeurs d'en apprendre plus sur TiddlyWiki, de collaborer et de discuter de son développement.

Développement de TiddlyWiki5

 21 décembre 2014 à 12h12

J'ai travaillé sur une nouvelle version de TiddlyWiki à partir de novembre 2011. En tant que programmeur, travailler à une « version 2.0 » de quelque chose que j'avais déjà écrit était une projet très séduisant. Cela signifiait que les besoins étaient bien compris, et je pouvais dès lors me concentrer sur l'architecture et ses évolutions nécessaires à la mise en œuvre des fonctionnalités désirées.

Tiddlers Dictionnaire

 22 juin 2015 à 11h27

Un tiddler dictionnaire est un tiddler de données contenant une simple liste de paires nom/valeur.

Son type de contenu est application/x-tiddler-dictionary.

Le champ text contient une ou plusieurs lignes de la forme name: value.

Les palettes de couleurs, comme la palette par défault, Vanilla, sont des tiddlers dictionnaires.

DiffTextWidget

 16 mars 2018 à 16h27

Introduction

Depuis : 5.1.16 The diff text widget analyses the differences between a pair of source and destination text strings and displays the results as highlighted insertions and deletions (similar to the "track changes" function of a word processor). For example:

8 différences
Hey Jude, don't make it bad. Take a sad song and make it better. Remember tobe afraid. You were made to go out and get her. The minute you let her intounder your heart↩︎
skin. Then you can startbegin to make it better.

Content and Attributes

Content

The content of the <$diff-text> widget is rendered immediately before the diffs. Within it, the variable diff-count is available, containing the number of differences found. If the widget has no content then it automatically transcludes the tiddler $:/language/Diffs/CountMessage.

In other words, these three invocations are all equivalent:

<$diff-text source={{FirstTiddler}} dest={{SecondTiddler}}>
{{$:/language/Diffs/CountMessage}}
</$diff-text>

<$diff-text source={{FirstTiddler}} dest={{SecondTiddler}}>
</$diff-text>

<$diff-text source={{FirstTiddler}} dest={{SecondTiddler}}/>

Attributes

AttributeDescription
sourceThe source text
destThe destination text
cleanupSee below

The cleanup attribute determines which optional post-processing should be applied to the diffs:

  • none: no cleanup is performed
  • semantic (default): rewrites the diffs for human readability
  • efficient: rewrites the diffs to minimise the number of operations for subsequent processing

(Note that in many cases the results will be the same regardless of the cleanup option. See the docs of the underlying library for more details).

Examples

In this example we compare two texts:

<$edit-text tiddler="SampleTiddlerFirst"/>

<$edit-text tiddler="SampleTiddlerSecond"/>

<$diff-text source={{SampleTiddlerFirst}} dest={{SampleTiddlerSecond}}/>

Affichera ceci :

4 différences
This is a test tiddler is called SampleTiddlerFirstSecond.

Disabling Plugins

 15 octobre 2016 à 13h17

Disabling Plugins

Plugins can be disabled by creating a tiddler titled $:/config/Plugins/Disabled/ concatenated with the plugin title, and setting its text to yes.

For example, to disable the plugin $:/plugins/tiddlywiki/highlight, the title would be:

$:/config/Plugins/Disabled/$:/plugins/tiddlywiki/highlight

Découvrez TiddlyWiki

 20 juin 2015 à 9h27

À moins que vous n'ayez déjà observé TiddlyWiki en action, nous pouvons vous garantir que vous n'avez jamais rien vu de semblable. TiddlyWiki est :

un outil,
une boîte à outils,
une communauté,
et une philosophie.

TiddlyWiki est un outil

TiddlyWiki est d'abord et avant tout un outil : un outil libre et gratuitement téléchargeable, qui sert à conserver et organiser du contenu, qu'il provienne du Web, de vos documents, ou de votre cerveau. Il s'agit d'un outil de prise de notes, d'annotation, de gestion de signets et de mémos, d'écriture, de gestion de projets et de listes de choses à faire, de collaboration, de blog, et d'édition.

Avec TiddlyWiki, vous créez ou collez du contenu dans des notes appelées tiddlers, puis vous connectez vos tiddlers avec des hyperliens et des tags. Vous pouvez ensuite retrouver vos notes facilement grâce à des fonctions comme des nuages de tags, des onglets latéraux, ou la fenêtre de recherche ultra rapide de TiddlyWiki. Vous pouvez même inclure dynamiquement le contenu d'un tiddler dans un autre — comme on assemble un jeu de construction — pour créer des articles, des listes, des présentations, etc.

TiddlyWiki est une boîte à outils

En plus d'être un outil multi-fonctions, TiddlyWiki est aussi une boîte à outils.

Là où d'autres produits de prises de notes commencent par vous attirer avec l'application de base, pour vous faire ensuite payer les fonctions réellement utiles, TiddlyWiki contient une collection de thèmes, palettes, plugins, widgets et macros, entièrement gratuits et en constante augmentation. Vous pouvez les combiner dans tous les sens pour corriger et remodeler votre TiddlyWiki à votre guise.

TiddlyWiki est aussi une communauté

Nous sommes une communauté d'utilisateurs et de développeurs qui s'aident mutuellement, imaginent de nouvelles façons de penser et d'organiser les connaissances, et créent de nouvelles solutions, afin d'adapter constamment TiddlyWiki aux besoins des utilisateurs. Les utilisateurs et les développeurs de TiddlyWiki partagent questions et conseils sur un forum Google dédié. Ils créent également des tutoriels, des adaptations et des plugins qui amélioreront votre expérience de TiddlyWiki. Rendez-vous à la section Communité de la table des matières pour plus de détails.

Enfin, TiddlyWiki est une philosophie

Prendre des notes et les organiser (et conserver toutes sortes de contenu) n'a d'intérêt que si vous êtes en mesure de les retrouver plus tard. Sinon, l'acte de prendre des notes n'est qu'une colossale perte de temps.

La philosophie de TiddlyWiki soutient que le meilleur moyen de prendre des notes consiste à les séparer en tiddlers, les plus petites unités sémantiques possibles. Un tiddler peut être une image, un lien sur une page web, la définition d'un terme, ou du code de personnalisation, comme une macro.

Ces tiddlers peuvent être ensuite combinés pour créer des unités plus longues : déroulés, articles, listes, galeries d'images, etc. Les fonctions de TiddlyWiki comme l'étiquetage, les références croisées et les filtres, sont conçues spécifiquement pour vous aider à associer et connecter les tiddlers de plusieurs manières, afin de faciliter la récupération de vos notes, voire vous aider à découvrir des relations inattendues entre vos tiddlers et l'information qu'ils contiennent.

Disqus comments plugin by bimlas

 6 janvier 2021 à 15h10

Use this plugin to give your visitors the opportunity to comment on your tiddlers without changing the wiki itself.

Disqus is a networked community platform used by hundreds of thousands of sites all over the web. With Disqus, your website gains a feature-rich comment system complete with social network integration, advanced administration and moderation options, and other extensive community functions.

https://bimlas.gitlab.io/tw5-disqus/

divide Operator

 11 juin 2019 à 13h59
purposetreating each input title as a number, divide them by the numeric value of the operand
inputa selection of titles
parameterN = a number
outputthe input as numbers, but with each one divided by N

Learn more about how to use Filters

Depuis : 5.1.20 See Mathematics Operators for an overview.

Examples

divide Operator (Examples)

 11 juin 2019 à 14h01

[[355]divide[113]]

=1 =2 =3 =4 +[divide[2]]

DOM, Modèle d'Objet Document

 23 juin 2015 à 8h35

Le DOM d'une page web est une représentation arborescente de son contenu, maintenue en interne pas le navigateur web pendant que l'utilisateur interagit avec ce contenu. Chaque intersection de l'arbre est appelée nœud (node).

Quand TiddlyWiki s'exécute dans un navigateur web, ses widgets interprètent les nœuds du DOM pour les afficher.

Quand TiddlyWiki est exécuté sur Node.js, il utilise un faux DOM pour simuler le comportement du navigateur.

Macros de documentation

 24 juin 2015 à 10h33

Les macros suivantes sont utilisées tout au long de la documentation de TiddlyWiki. Leurs noms commencent par un point pour les séparer de celles que les utilisateurs ont l'habitude d'expérimenter.

Général

MacroUtilisé pourExemple
.defl'occurrence d'un terme définiwidget
.emmise en valeur mineur dans une phrasenon
.placeun emplacement à saisir par l'utilisateurnomtag
.strongmise en valeur majeur dans un tiddlerImportant!
.wordla mention d'un mot ou une phrase ordinaire"Salut à tous"

Avis

MacroUtilisé pourExemple
.tipAstuces & infos
Allumez votre écran, ou
vous n'en verrez pas plus.
.warningAvertissement
Sauvegardez vos fichiers
avant la mise à jour.

Blocs

MacroUtilisé pour
.preambleUn préambule qui se démarque du reste du tiddler

Tiddlers et champs

MacroUtilisé pourExemple
.tidun titre de tiddlerExemple
.tagun tagExemple
.fieldun nom de champexemple
.valuela valeur d'un champexemple de valeur
.opun opérateur de filtrebacklinks
.varun nom de variable ou de macrocurrentTiddler
.widun nom de widget$list
.attrun nom d'attributfilter
.paramun nom de paramètre de macrotext

Le carnaval des liens (cliquez pour essayer)

MacroUtilisé pourExemple
.linkun lien avec du WikiTextan exemple
.clinkun lien en code<$list>
.dlinkun lien vers l'occurrence d'un terme définiwidget
.dlink-exun lien externe vers une occurrence définieExemple
.flinkun lien vers un champlist
.mlinkun lien vers une macroqualify
.mlink2un lien vers une macro, avec cible spécifiéefoo
.olinkun lien vers un opérateurprefix
.olink2un lien vers un opérateur, avec cible spécifiéefoo
.vlinkun lien vers une variablecurrentTiddler
.vlink2un lien vers une variable, avec cible spécifiéefoo
.wlinkun lien vers un widget$button
.wlink2un lien vers un widget, avec texte spécifiéfoo

Interface utilisateur

MacroUtilisé pourExemple
.keyune touche du clavierEscape
.keycomboune combinaison de touchesCtrl+Enter

Onglets

MacroUtilisé pourExemple
.sidebar-table nom d'onglet du menu latéralPlus
.more-table nom d'une option de l'onglet PlusShadows
.info-table nom d'un tiddler de l'onglet infoChamps
.controlpanel-tabthe name of a Control Panel tabParamétrage
.advancedsearch-tabthe name of an Advanced Search tabFiltrer
.toc-tabname of the tw5.com TOC tabSommaire
.example-taban example tab nameNotes

Paramètres de .sidebar-tab (menu latéral)

OpenOuverts
RecentRécents
ToolsOutils
MorePlus

Paramètres de .more-tab (onglet plus)

AllTout
RecentRécents
TagsTags
MissingManquants
DraftsBrouillons
OrphansOrphelins
TypesTypes
SystemSystème
ShadowsShadows

Paramètres de .info-tab (panneau d'info)

ToolsOutils
ReferencesPointeurs
TaggingÉtiquetage
ListListe
ListedListé
FieldsChamps
AdvancedAvancé

Paramètres de .controlpanel-tab (panneau de contrôle)

InfoInfo
AppearanceApparence
SettingsParamétrage
SavingSauvegarde
PluginsPlugins

Paramètres de .advancedsearch-tab (Recherche avancée)

StandardStandard
SystemSystème
ShadowsShadows
FilterFiltrer

Boutons

MacroUtilisé pourExemple
.buttonun bouton standard et son icone nouveau tiddler

Paramètres de .button

Barre d'outils de Tiddler

clone cloner
close fermer
close-others fermer les autres tiddlers
edit éditer
export-tiddler exporter ce tiddler
info informations
more-tiddler-actions plus
new-here nouveau, à partir d'ici
new-journal-here4 nouveau journal, à partir d'ici
permalink permalink

Barre d'outil du mode Edition

cancel annuler
delete supprimer
save ok

Page des outils

advanced-search recherche avancée
close-all fermer tout
control-panel panneau de contrôle
encryption chiffrement
export-page exporter tout
full-screen plein-écran
home accueil
import importer
language langue
more-page-actions plus
new-journal4 nouveau journal
new-tiddler nouveau tiddler
permaview permaview
refresh rafraîchir
save-wiki enregistrer les modifications
storyview visualisation du déroulé
tag-manager gestionnaire de tags
theme thème

Documentation pour les traducteurs

127.0.0.1 18 décembre 2014 à 14h12

Manuel de style pour la documentation TiddlyWiki

 28 novembre 2014 à 17h06

La documentation de TiddlyWiki tente de suivre les règles suivantes. L'objectif est de s'assurer que la documentation issue d'auteurs différents se lira de façon aussi homogène que possible.

  1. Adressez-vous au lecteur directement en disant "vous"
  2. Évitez la voix passive dans vos tutoriels et vos présentations
  3. Lorsque vous écrivez en Anglais, utilisez l'Anglais britannique de préférence à l'Anglais des États-Unis. En Français, si vous utilisez des expressions qui ne sont pas employées en France, reliez-les à un tiddler qui les replace dans leur contexte.

Voir aussi les règles pour les titres des tiddlers.

Ajout prépondérant

 22 juin 2015 à 11h29

Les filtres manipulent des sélections de titres où aucun titre n'apparait plus d'une fois. En outre, ils ont souvent besoin d'ajouter tel ensemble à un autre.

Cet ajout s'effectue d'une façon telle que, si un titre vient à être dupliqué, la copie antérieure de ce titre est éliminé. Les titres ajoutés sont prépondérants.

Par exemple, si une sélection contient Andrew Becky Clara Daniel et que Andrew Barney Clara Daisy lui est ajouté, le résultat sera Becky Daniel Andrew Barney Clara Daisy.

done

 5 juillet 2013 à 11h27

Mécanisme pour les ébauches

 24 juin 2015 à 10h12

Les Tiddlers qui ont un champ draft.of sont traités comme les ébauches en suspens des tiddlers indiqués dans le champ. Les tiddlers d'ébauche ont aussi un champ draft.title spécifiant le titre qui sera donné au tiddler après validation.

Plusieurs fonctionnalités fonctionnent de concert afin d'obtenir le comportement souhaité des tiddlers d'ébauche :

  • Le ListWidget peut éventuellement afficher les tiddlers ébauche via un gabarit différent
  • Le NavigatorWidget inclut des particularismes concernant les événements suivants :
    • tm-new-tiddler pour créer un nouveau tiddler en mode ébauche
    • tm-edit-tiddler pour mettre un tiddler en mode édition
    • tm-cancel-tiddler pour annuler un tiddler en mode édition
    • tm-save-tiddler pour confirmer un tiddler d'ébauche
  • Les tiddlers en cours d'ébauche sont exclus automatiquement du champ des recherche

Drag and Drop

 28 mars 2017 à 18h38

TiddlyWiki uses drag and drop to power two separate features:

Tiddler manipulation via drag and drop is supported by the core user interface in the following contexts:

  • Entries in the "Open" tab of the sidebar can be reordered by drag and drop; new tiddlers can be opened by dragging their titles into the list
  • Entries within a tag pill dropdown can be reordered by drag and drop; new tiddlers can be assigned the tag by dragging their titles into the list
  • Entries in the control panel "Appearance"/"Toolbars" tab can be reordered by drag and drop. (Less usefully, new entries can be added to the toolbars by dragging their titles into the list)

All tiddler links are draggable by default. They can be dragged within a browser window for manipulating tiddlers, or dragged to a different browser window to initiate an import operation

If you want to drag a link, first move it vertically, because horizontal movement is recognized by the browser as text selection.

Tag pills are also draggable, and are equivalent to simultaneously dragging all of the individual tiddlers carrying the tag.

Some common scenarios for drag and drop tiddler manipulation are available as reusable macros:

See DragAndDropMechanism for details of how to use the low level drag and drop primitives to build more complex interactions.

The standard HTML 5 drag and drop APIs used by TiddlyWiki are not generally available on mobile browsers on smartphones or tablets. The Mobile Drag And Drop Shim Plugin adds an open source library that implements partial support on many mobile browsers, including iOS and Android.

DragAndDropMechanism

 6 avril 2017 à 9h58

This tiddler discusses the internal mechanisms that are used to implement drag and drop features in TiddlyWiki. See Drag and Drop for a general description of the features.

TiddlyWiki uses the standard HTML 5 drag and drop APIs. However, this is an area that is rightly notorious for cross-browser compatibility problems. Therefore, some features that you might expect to work won't necessarily work in all browsers. In particular,

The following widgets are concerned with drag and drop features:

The general sequence of a drag and drop operation is as follows:

  1. The user clicks down and drags the pointer on a draggable element such as the DraggableWidget, ButtonWidget or LinkWidget
  2. The draggable element moves with the mouse pointer until the click is released
  3. Moving the pointer over droppable elements such as the DroppableWidget displays a highlight indicating that the item can be dropped
  4. The configured actions are performed if the drag ends on a droppable element

DraggableWidget

 15 juillet 2022 à 13h02

The DraggableWidget creates a DOM element that can be dragged by the user. It only works on browsers that support drag and drop, which typically means desktop browsers, but there are workarounds.

The draggable element can be assigned a list of tiddlers that are used as the payload. If desired it can invoke actions when dragging starts and when it ends. See DragAndDropMechanism for an overview.

Content and Attributes

AttributeDescription
tiddlerOptional title of the payload tiddler for the drag
filterOptional filter defining the payload tiddlers for the drag
tagOptional tag to override the default "div" element created by the widget
selector Depuis : 5.2.2 Optional CSS Selector to identify a DOM element within the widget that will be used as the drag handle
classOptional CSS classes to assign to the DOM element created by the widget. The class tc-draggable is added to the the DOM element created by the widget unless the selector attribute is used. The class tc-dragging is applied to the DOM element created by the widget while the element is being dragged
enable Depuis : 5.2.3 Optional value "no" to disable the draggable functionality (defaults to "yes")
startactionsOptional action string that gets invoked when dragging starts
endactionsOptional action string that gets invoked when dragging ends
dragimagetype Depuis : 5.2.0 Optional type of drag image: dom (the default) or blank to disable the drag image

Either or both of the tiddler and filter attributes must be specified in order for there to be a payload to drag.

The actionTiddler Variable is accessible in both startactions and endactions. It holds the payload tiddler(s) specified through the tiddler and filter attributes as a Title List using double square brackets to quote titles that include whitespace.

Note that the actionTiddler Variable holds a Title List quoted with double square brackets. This is unlike the DroppableWidget which uses the same variable to pass a single unquoted title.

When specifying a DOM node to use as the drag handle with the selector attribute, give it the class tc-draggable in order for it to have the appropriate cursor and the attribute draggable with the value true to make it draggable.

The LinkWidget incorporates the functionality of the DraggableWidget via the draggable attribute.

Depuis : 5.2.3 The following variables are accessible in the startactions and the endactions:

VariablesDescription
modifierThe modifier Variable contains the Modifier Key held while dragging
dom-*All DOM attributes of the node being dragged are made available as variables, with the prefix dom-
tv-popup-coordsA relative co-ordinate string that can be used with the ActionPopupWidget to trigger a popup at the DOM node matching the selector where the event originated (see Coordinate Systems for more information)
tv-popup-abs-coords Depuis : 5.2.4 An absolute co-ordinate string that can be used with the ActionPopupWidget to trigger a popup at the DOM node matching the selector where the event originated (see Coordinate Systems for more information)
tv-selectednode-posxx offset position of the dragged DOM node
tv-selectednode-posyy offset position of the dragged DOM node
tv-selectednode-widthoffsetWidth of the dragged DOM node
tv-selectednode-heightoffsetHeight of the dragged DOM node
event-fromselected-posxx position of the event relative to the dragged DOM node
event-fromselected-posyy position of the event relative to the dragged DOM node
event-fromviewport-posxx position of the event relative to the viewport
event-fromviewport-posyy position of the event relative to the viewport

DroppableWidget

 9 octobre 2021 à 13h20

The droppable widget creates a DOM element onto which dragged items can be dropped by the user, triggering the specified actions. It only works on browsers that support drag and drop, which typically means desktop browsers, but there are workarounds.

See DragAndDropMechanism for an overview.

Content and Attributes

AttributeDescription
actionsActions to be performed when items are dropped
classOptional CSS classes to assign to the draggable element. The class tc-droppable is added automatically, and the class tc-dragover is applied while an item is being dragged over the droppable element
tagOptional tag to override the default of a "div" element when the widget is rendered in block mode, or a "span" element when it is rendered in inline mode
enable Depuis : 5.1.22 Optional value "no" to disable the droppable functionality (defaults to "yes")

Within the action string, there are two Variables generated by the DroppableWidget:

If multiple items are dropped then the actions are performed repeatedly, once for each dropped item.

Note that the actionTiddler Variable holds a single, unquoted title. This is unlike the DraggableWidget which uses the same variable to pass a quoted Title List.

Examples

This example displays a palette of icons. Dragging a tiddler onto one of the icons assigns that icon to the tiddler.

4

Similarly, this example shows a palette of colours. Dragging a tiddler onto one of the colours assigns that colour to be used for rendering the icon of the tiddler.

DropzoneWidget

 9 octobre 2021 à 13h22

Introduction

The dropzone widget creates an area into which the user can drag files and other objects. It also supports pasting via the clipboard, although browser support is currently limited.

It sends a WidgetMessage: tm-import-tiddlers carrying a JSON representation of the tiddlers to be imported up through its parents. This message usually trapped by the NavigatorWidget which adds the tiddlers to the store and updates the story to display them.

Content and Attributes

AttributeDescription
deserializer Depuis : 5.1.15 Optional name of deserializer to be used (by default the deserializer is derived from the file extension)
enable Depuis : 5.1.22 Optional value "no" to disable the dropzone functionality (defaults to "yes")
class Depuis : 5.1.22 Optional CSS class to be assigned to the DOM node created by the dropzone (defaults to "tc-dropzone")
autoOpenOnImport Depuis : 5.1.23 Optional value "no" or "yes" that can override tv-auto-open-on-import
importTitle Depuis : 5.1.23 Optional tiddler title to use for import process instead of $:/Import
actions Depuis : 5.2.0 Optional actions string to be invoked after the tm-import-tiddlers message has been sent. The variable importTitle provides the title of the tiddler used for the import process.
contentTypesFilter Depuis : 5.2.0 Optional filter that specifies the content types accepted by the dropzone.
filesOnly Depuis : 5.2.0 Optional. When set to "yes", the dropzone only accepts files and not string data. Defaults to "no"

Use the prefix filter operator to easily accept multiple related content types. For example this filter will accept all image content types: [prefix[image/]]

The list of available deserializers can be seen by using the filter [deserializers[]] in the Filter tab in Advanced Search.

The dropzone widget displays any contained content within the dropzone.

Display

The dropzone widget creates an HTML <div class="tc-dropzone"> to contain its content. During a drag operation the class tc-dragover is added. CSS is used to provide user feedback. For custom styling of this state where a drag is in progress, specify a custom class name with the class attribute and use CSS with the selector .myclass.tc-dragover.

Data types supported

The following data transfer types are supported:

  • text/vnd.tiddler - a list of tiddlers in JSON format (this format is generated by the LinkWidget)
  • text/plain - plain text
  • text/uri-list - a list of URIs as a single tiddler

Macro dumpvariables

 19 juin 2015 à 17h10

La macro dumpvariables renvoie un tableau affichant les valeurs de toutes les variables et macros présentes à une position donnée de l'arbre widget.

Utile pour déboguer et explorer le fonctionnement interne de TiddlyWiki.

Les zones réservées sont remplacées par des valeurs de façon normale, mais en utilisant les valeurs par défaut pour tous les paramètres de macro.

Paramètres

(aucun)

Exemples

Macro dumpvariables (Exemples)

 19 juin 2015 à 17h14

<$set name="EXEMPLE" value="123..789">
<$set name="EXEMPLE2" value="456">

<<dumpvariables>>

</$set>
</$set>

duplicateslugs Operator

 9 mai 2020 à 15h17
purposefind titles that yield duplicate slugs
inputa selection of titles
outputinput titles that yield duplicate slugs

Learn more about how to use Filters

Depuis : 5.1.23 The slugify operator can be used to transform arbitrary tiddler titles into human readable strings suitable for use in URLs or filenames. However, it is possible for multiple different titles to slugify to the same string. The duplicateslugs operator can be used to display a warning. For example:

<$list filter="[!is[system]duplicateslugs[]limit[1]]" emptyMessage="There are no duplicate slugs">
The following tiddlers have duplicate slugs:

<ul>
<$list filter="[!is[system]duplicateslugs[]]">
<li><$link><$text text=<<currentTiddler>>/></$link></li>
</$list>
</ul>
</$list>

Affichera ceci :

There are no duplicate slugs

Dynaview Plugin

 13 novembre 2018 à 8h41

The Dynaview Plugin makes it possible to build user interfaces that dynamically respond to changes in the browser viewport via scrolling or zooming:

  • CSS classes that allow rendering to be deferred until the output is scrolled into view
  • CSS classes that allow the opacity of DOM elements to vary according to the current zoom level

See the demo at https://tiddlywiki.com/plugins/tiddlywiki/dynaview

each Operator

 9 décembre 2019 à 8h59
purposeselect one of each group of input titles by field
inputa selection of titles
suffixoptionally, list-item or value
parameterF = the name of a field, defaulting to title
outputa selection containing the first input title encountered for each distinct value of field F

Learn more about how to use Filters

Each input title is processed in turn. The value of field F in the corresponding tiddler is examined.

each
As long as the value of the field is unique (i.e. has not been encountered before), the title is appended to the output.
each:list-item
The value is treated as a title list. Each title in the list considered in turn. If it has not been encountered before, it is appended to the output.
each:value
As long as the title is unique it is appended to the output whether or not the corresponding tiddler exists.

Note that if a tiddler does not contain field F, it is treated as if the value of the field were empty. Thus, a filter expression such as [each[motovun]] will return one tiddler that doesn't have a motovun field, as well as one tiddler with each distinct value of that field, if any. To obtain just the tiddlers that have a non-blank value for the motovun field one can use [each[motovun]has[motovun]].

Examples

each Operator (Examples)

 18 janvier 2015 à 18h31

[each[color]]

[sort[title]each[type]]
→ the alphabetically first tiddler of each type

[each:list-item[list]]
→ all tiddlers listed anywhere in the core list field

[[Non existing]] [[GettingStarted]] +[each:value[]]
→ Compare this to +[each[]] below

[[Non existing]] [[GettingStarted]] +[each[]]
→ Compare this to +[each:value[]] above

For an example of using the each operator to generate a two-tier list of groups and members, see GroupedLists.

eachday Operator

 10 février 2015 à 16h16
purposeselect one of each group of input titles by date
inputa selection of titles
parameterF = the name of a date field, defaulting to modified
outputa selection containing the first input title encountered for each distinct value (ignoring times of day) of field F

Learn more about how to use Filters

Each input title is processed in turn. The value of field F in the corresponding tiddler is examined, and as long as this indicates a date that has not been encountered before, the title is appended to the output.

If a tiddler doesn't contain field F, it contributes nothing to the output.

Examples

eachday Operator (Examples)

 18 janvier 2015 à 18h31

[eachday[created]]
→ the first tiddler created on each day

For an example of using the eachday operator to generate a two-tier list of groups and members, see GroupedLists.

Edición en Castellano

 11 mai 2016 à 17h02

La edición española de TiddlyWiki se encuentra aquí:

Edit Template Body Cascade

 6 décembre 2021 à 16h19

The edit template body cascade is a cascade used by the default edit template to choose the template for displaying the tiddler body.

The core edit template body cascade can be found in $:/core/ui/EditTemplate/body

The default edit template body cascade consists of:

  1. If the tiddler has the field _canonical_uri then use the template $:/core/ui/EditTemplate/body/canonical-uri to display the remote URL
  2. Otherwise, use the template $:/core/ui/EditTemplate/body/default which provides the default editing interface

You can see the current settings for the view template body cascade in $:/ControlPanel under the Info -> Advanced -> Cascades -> Edit Template Body tab.

EditBitmapWidget

 20 février 2015 à 16h21

Introduction

The edit bitmap widget provides a user interface in the browser for editing bitmap tiddlers.

Content and Attributes

The content of the <$edit-bitmap> widget is ignored.

AttributeDescription
tiddlerThe tiddler to edit (defaults to the current tiddler)

Configuration

The edit bitmap widget can be configured with these system tiddlers:

Edition des tiddlers avec Emacs

 14 juin 2015 à 12h17

Michael Fogleman a rédigé un mode Emacs majeur appelé tid-mode, qui permet de modifier des fichiers TiddlyWiki .tid. C'est une variante du mode-texte qui utilise les modes mineurs org-struct et subword, et met à jour les modifications à chaque sauvegarde du fichier .tid .

Il a aussi écrit deux fonction aidant à l'utilisation de TiddlyWiki sur Emacs. La première ouvre un dossier de tiddlers dans Dired ; la seconde ouvre TiddlyWiki dans le navigateur.

(defun open-wiki ()
  "Opens a TiddlyWiki directory in Dired."
  (interactive)
  (dired "~/Dropbox/wiki/tiddlers/"))
(defun browse-wiki ()
  "Opens TiddlyWiki in the browser."
  (interactive)
  (browse-url "127.0.0.1:8080/"))

Cette fonction ultérieure nécessite un navigateur spécifique :

(setq browse-url-browser-function 'browse-url-generic
      browse-url-generic-program "chromium")

Vous pouvez créer un raccourci clavier vers chacune de ces fonctions avec la fonction global-set-key :

(global-set-key (kbd "C-c w") 'open-wiki)

À ce jour, cela n'est pas intégré dans tid-mode.

Editing Tiddlers with Vim

 11 janvier 2016 à 19h00

Devin Weaver has written a Vim plugin at https://github.com/sukima/vim-tiddlywiki

It supports most of the TiddlyWiki syntax and includes a filetype plugin which will auto update the modified field.

Édition en Français (France)

 3 décembre 2014 à 17h59

La traduction en Français (France) de TiddlyWiki démarre ici :

editiondescription Operator

 3 février 2015 à 18h45
purposeselect the descriptions of the input editions
inputa selection of edition names
parameternone
outputthe description string of each edition in the input

Learn more about how to use Filters

Each input title is processed in turn, ignoring any that is not the name of a TiddlyWiki edition.

Note
This operator is not available when TiddlyWiki is running in a web browser.

Éditions

 27 novembre 2014 à 9h09

TiddlyWiki est publié sous différentes éditions adaptées à des objectifs spécifiques. Chacune est constituée des mêmes composants TiddlyWiki principaux, associés aux plugins nécessaires, à la documentation et au contenu d'exemple.

Vous pouvez mélanger les composants de ces éditions à votre gré pour créer une solution unique pour votre application dédiée.

editions Operator

 3 février 2015 à 18h46
purposeselect the names of all the TiddlyWiki editions
inputignored
parameternone
outputthe name of each TiddlyWiki edition, in alphabetical order

Learn more about how to use Filters

Note
This operator is not available when TiddlyWiki is running in a web browser.

EditionsCommand

 29 octobre 2014 à 11h43

Liste les noms et descriptions des éditions disponibles. La commande --init permet de créer un nouveau wiki à partir d'une édition particulière.

--editions

Editor toolbar

 18 janvier 2019 à 16h13

How it Works

The editor toolbar is a toolbar that helps you format text easily. It appears above the text input field in a tiddler when in edit mode. It has a similar appearance to desktop text editors like Microsoft Word or Libre Office Write.

What the Editor toolbar does

When you press the button for a function, it will insert the WikiText in the text field. As an example, if you press the bold button it will insert '' ''.

If you highlight a piece of text the markup code will automatically go around the highlighted text.

If you are in another mode, like MarkDown, the toolbar will change to that syntax and insert appropriate code. However It will not change previously typed text or markup.

Besides the standard WikiText formatting, the Editor toolbar has the following buttons:

EditTextWidget

 25 octobre 2014 à 9h54

Introduction

The edit text widget provides a user interface in the browser for editing text tiddler fields. The editing element is dynamically bound to the underlying tiddler value: changes to the tiddler are instantly reflected, and any edits are instantly propogated.

By default, the edit text widget generates a <textarea> as the HTML editing element when the text field is edited, and a <input type="text"> element otherwise. This behaviour can be overridden with the tag and type attributes.

Content and Attributes

The content of the <$edit-text> widget is ignored.

AttributeDescription
tiddlerThe tiddler to edit (defaults to the CurrentTiddler)
fieldThe field to edit (defaults to text). Takes precedence over the index attribute
indexThe index to edit
defaultThe default text to be provided when the target tiddler doesn't exist
classA CSS class to be assigned to the generated HTML editing element
placeholderPlaceholder text to be displayed when the edit field is empty
focusPopupTitle of a state tiddler for a popup that is displayed when the editing element has focus
tagOverrides the generated HTML editing element tag. Use textarea for a multi-line editor
typeOverrides the generated HTML editing element type attribute
sizeThe size of the input field (in characters)
autoHeightEither "yes" or "no" to specify whether to automatically resize textarea editors to fit their content (defaults to "yes")
minHeightMinimum height for automatically resized textarea editors, specified in CSS length units such as "px", "em" or "%"

Notes

One trap to be aware of is that the edit text widget cannot be used to edit a field of the tiddler that contains it. Each keypress results in the tiddler being re-rendered, which loses the cursor position within the text field.

Instead, place the edit text widget in a template that references the tiddler you want to modify.

For example, if you wanted to edit the value of the "myconfig" field of the tiddler "AppSettings", you might do so by creating a separate tiddler "ChangeAppSettings" that contains the following:

<$edit-text tiddler="AppSettings" field="myconfig"/>

EditWidget

 9 octobre 2021 à 13h16

Introduction

The edit widget provides a general purpose interface for editing a tiddler. It dynamically chooses the appropriate widget depending on the type of the tiddler (currently either the EditTextWidget or the EditBitmapWidget).

Content and Attributes

The content of the <$edit> widget is ignored.

AttributeDescription
tiddlerThe tiddler to edit (defaults to the current tiddler)
fieldThe field to edit (defaults to text). Takes precedence over the index attribute
indexThe index to edit
classA CSS class to be added the generated editing widget
tabindexSets the tabindex attribute of the input or textarea to the given value
autocomplete Depuis : 5.1.23 An optional string to provide a hint to the browser how to handle autocomplete for this input
cancelPopups Depuis : 5.1.23 if set to "yes", cancels all popups when the input gets focus
inputActions Depuis : 5.1.23 Optional actions that are triggered every time an input event occurs within the input field or textarea
refreshTitle Depuis : 5.1.23 An optional tiddler title that makes the input field update whenever the specified tiddler changes

else Operator

 2 août 2019 à 12h39
purposeif the list of input titles is empty then return a list consisting of a single constant string, otherwise return the original titles
inputa selection of titles
parameterE = a string
outputthe original input titles unless empty, in which case return a list with the single entry E

Learn more about how to use Filters

Depuis : 5.1.20 See Conditional Operators for an overview.

Examples

else Operator (Examples)

 2 août 2019 à 12h35

[[HelloThereMissing]is[missing]else[yes]]

[[HelloThere]is[missing]else[yes]]

Export d'urgence des tiddlers

 2 avril 2022 à 11h58

Cette méthode est utile si, pour une raison ou une autre, vous n'arrivez pas à enregistrer votre TiddlyWiki (si un plugin ou un serveur ne marchent plus). Elle devrait fonctionner sur n'importe quelle plateforme.

  • Ouvrez la Recherche avancée
    • Choisissez l'onglet « Filtrer »
    • Saisissez le code de filtre suivant :
[!is[system]!sort[modified]limit[25]]
  • Vérifiez la liste des tiddlers
  • Ajustez le nombre « 25 » dans le filtre pour que tous les tiddlers que vous avez modifiés depuis le dernier enregistrement soient visibles dans la liste
  • Cliquez sur le bouton [] qui s'affiche à droite de la zone de saisie, et choisissez le format de fichier JSON
  • Une fenêtre du navigateur va vous demander de choisir un emplacement pour enregistrer un fichier nommé tiddler.json ou, selon votre configuration, juste vous notifier que le fichier va être téléchargé. Cliquez sur Enregistrer.
  • Le fichier tiddlers.json peut être importé (onglet Outils de la barre latérale) ou glissé-déposé sur la ligne supérieure du déroulé des tiddlers d'un autre TiddlyWiki.
    • Vous pouvez (dé)sélectionner des tiddlers particuliers.
    • Finalement, cliquez sur Importer.

Édition « basique »

 26 mai 2016 à 14h20

L'édition « basique » de TiddlyWiki est une distribution minimale, sans plugin additionnel ni configuration au-delà du code principal.

L'édition basique peut être récupérée à l'adresse :

Si le bouton ne fonctionne pas, enregistrez ce lien : https://tiddlywiki.com/languages/fr-FR/empty.html
Votre navigateur vous demandera peut-être d'accepter explicitement l'enregistrement avant qu'il démarre

encodebase64 Operator

 
purposeapply base 64 encoding to a string
inputa selection of titles
outputthe input with base 64 encoding applied

Learn more about how to use Filters

Depuis : 5.2.6

See Mozilla Developer Network for details of base 64 encoding. TiddlyWiki uses library code from @nijikokun to handle the conversion.

The input strings are interpreted as binary data. The output strings are base64 encoded.

Examples

encodehtml Operator

 17 octobre 2016 à 16h30
purposeapply HTML encoding to a string
inputa selection of titles
outputthe input with HTML encoding applied

Learn more about how to use Filters

Depuis : 5.1.14

"HTML encoding" means replacing special HTML characters with the corresponding HTML entity:

  • & replaced with &amp;
  • < replaced with &lt;
  • > replaced with &gt;
  • " replaced with &quot;

Examples

encodehtml Operator (Examples)

 17 octobre 2016 à 16h53

[[Title with <angle brackets>]] +[encodehtml[]]

[[Title with an & ampersand]] +[encodehtml[]]

encodeuri Operator

 17 octobre 2016 à 16h28
purposeapply URI encoding to a string
inputa selection of titles
outputthe input with URI encoding applied

Learn more about how to use Filters

Depuis : 5.1.14

See Mozilla Developer Network for details of the encodeURI operation.

Examples

encodeuri Operator (Examples)

 17 octobre 2016 à 16h53

[[Title with Space]] +[encodeuri[]]

[[Title with Space]] [[Another title with Space]] +[encodeuri[]]

encodeuricomponent Operator

 19 janvier 2023 à 17h43
purposeapply URI component encoding to a string
inputa selection of titles
outputthe input with URI component encoding applied

Learn more about how to use Filters

Depuis : 5.1.14

See Mozilla Developer Network for details of the encodeURIComponent operation.

Depuis : 5.2.6 In addition to the characters mentioned in the article above, the following additional characters are also percent encoded: !'()*

Examples

encodeuricomponent Operator (Examples)

 17 octobre 2016 à 16h53

[[Title with Space]] +[encodeuricomponent[]]

[[Title with Space]] [[Another title with Space]] +[encodeuricomponent[]]

Cryptage

 3 juin 2015 à 15h29

Lorsqu'il est utilisé comme un fichier HTML unique, TiddlyWiki5 permet de crypter le contenu à l'aide de la Stanford JavaScript Crypto Library.

  1. Allez à l'onglet Outils sur la barre latérale, et cherchez le bouton avec une icône de cadenas
  2. Si le bouton a pour intitulé « affecter un mot de passe », c'est que le wiki en cours n'est pas crypté. Cliquer sur le bouton vous demandera un mot de passe qui sera utilisé pour les prochains enregistrements
  3. Si le bouton est intitulé « résilier le mot de passe », cela signifie que le wiki en cours est déjà crypté. Cliquer sur le bouton supprimera le mot de passe de sorte que les enregistrements suivants ne seront pas cryptés
  4. Si vous voulez vérifier que vos données sont bien cryptées, vous pouvez ouvrir le fichier enregistré dans un éditeur de texte (faites attention de ne pas le modifier !)
  5. Ouvrez le fichier dans votre navigateur. Avant d'afficher le contenu, un mot de passe vous sera demandé.

EncryptWidget

 30 octobre 2013 à 8h37

Introduction

The encrypt widget renders a filtered list of tiddlers to an encrypted block with the password currently held in the PasswordVault. The encrypted block can subsequently be decrypted by the TiddlyWiki5 BootMechanism. See the EncryptionMechanism for more details.

Content and Attributes

The content of the <$encrypt> widget is ignored.

AttributeDescription
filterFilter defining the tiddlers to be included in the encrypted block. If not specified then all non-system tiddlers are used

enlist Operator

 5 mai 2021 à 11h02
purposeselect titles from the operand interpreted as a title list
inputignored
! inputa selection of titles
suffixD = Depuis : 5.1.20 dedupe (the default) to remove duplicates, raw to leave duplicates untouched
parameterL = a title list
outputthe titles stored as a title list at L
! outputthose input titles that are not listed in L

Learn more about how to use Filters

Literal filter operands cannot contain square brackets but you can work around the issue by using a variable. Learn more at: SetWidget documentation under the heading "Filtered List Variable Assignment"

<$set name="myList" value="first [[second with a space]] third">
<$list filter="[enlist<myList>]">
...

Examples

enlist Operator (Examples)

 10 juin 2019 à 17h53

[enlist[one two three]addsuffix[!]]

[enlist[one one one]]

[enlist:raw[one one one]]

[enlist{$:/StoryList!!list}]

enlist-input Operator

 2 novembre 2020 à 22h18
purposeselect titles by interpreting each input title as a title list
inputa selection of titles
suffixD = dedupe (the default) to remove duplicates, raw to leave duplicates untouched
outputthe titles stored as a title list in each input title

Learn more about how to use Filters

Depuis : 5.1.23

Compare with enlist operator that interprets its operand as a title list

<$vars days={{{ [[Days of the Week]get[list]] }}}>

{{{ [enlist<days>] }}}

</$vars>

is equivalent to:

{{{ [[Days of the Week]get[list]enlist-input[]] }}}

Examples

enlist-input Operator (Examples)

 3 novembre 2020 à 9h06

[[Days of the Week]get[list]enlist-input[]]

Contrast with:

[[Days of the Week]get[list]]
'HelloThere GettingStarted [[Customise TiddlyWiki]]' +[enlist-input[]]
Contrast with:
'HelloThere GettingStarted [[Customise TiddlyWiki]]'
'HelloThere HelloThere GettingStarted [[Customise TiddlyWiki]]' +[enlist-input:raw[]]
Contrast with:
'HelloThere HelloThere GettingStarted [[Customise TiddlyWiki]]' +[enlist-input[]]

EntityWidget

 14 mars 2016 à 16h56

Introduction

The entity widget displays a specified HTML character entity.

Content and Attributes

The content of the <$entity> widget is not used.

AttributeDescription
entityThe entity to display (eg, &times;)

Variables d'environment sur Node.js

 24 juin 2015 à 10h47

TiddlyWiki pour Node.js reconnaît les variables d'environnement système ci-dessous pour spécifier une liste de chemins (séparés par des deux-points), où chercher les différents plugins et « éditions » :

  • TIDDLYWIKI_PLUGIN_PATH — Chemin de recherche pour les plugins ordinaires
  • TIDDLYWIKI_THEME_PATH — Chemin de recherche pour les thèmes
  • TIDDLYWIKI_LANGUAGE_PATH — Chemin de recherche pour les langues
  • TIDDLYWIKI_EDITION_PATH — Chemin de recherche pour les éditions (utilisé par la commande Init).

Ces chemins supplémentaires doivent tous pointer vers des dossiers structurés comme leurs répertoires équivalents de l'arborescence TiddlyWiki5 sous GitHub : les répertoires de plugins, thèmes et langues contiennent publisher/nomduplugin/<fichiers> tandis que les répertoires des « éditions » contiennent nomedition/<fichiers>

Exemple :

TIDDLYWIKI_PLUGIN_PATH=~/MonMagasinDePlugins
tiddlywiki monwiki --build index

ErrorWidget

 19 avril 2023 à 11h31

Depuis : 5.2.4 The $error widget is used by the core to display error messages such as the recursion errors reported by the $transclude widget.

The $error does not provide any useful functionality to end users. It is only required by the core for technical reasons.

Content and Attributes

The content of the $error widget is ignored.

AttributeDescription
$messageThe error message

escapecss Operator

 29 juin 2019 à 8h28
purposeapply CSS escaping to a selection of titles through the CSS.escape() method / operation
inputa selection of titles
outputthe input with CSS escaping applied through the CSS.escape() method

Learn more about how to use Filters

Depuis : 5.1.20

See Mozilla Developer Network for details of the CSS.escape() operation.

Examples

escapecss Operator (Examples)

 29 juin 2019 à 8h28

[all[tiddlers]tag[Resources]escapecss[]]

escaperegexp Operator

 17 octobre 2016 à 16h32
purposeescape special characters used in regular expressions
inputa selection of titles
outputthe input with escaping applied to special regular expression characters

Learn more about how to use Filters

Depuis : 5.1.14

See Mozilla Developer Network for details of the regular expression syntax.

Examples

escaperegexp Operator (Examples)

 17 octobre 2016 à 16h55

[[Title with dots . and dollars $]] +[escaperegexp[]]

Eucaly's Tiddly World

 6 janvier 2021 à 15h10

I collect my tw5 creations on-line as http://eucaly-tw5.tiddlyspot.com/

Available Plugins :

EventCatcherWidget

 12 octobre 2022 à 20h42

Introduction

Depuis : 5.1.23

This is an advanced widget intended for use by those familiar with HTML, CSS and JavaScript handling of DOM events.

The event catcher widget traps DOM-initiated Javascript events dispatched within its child content, and allows invoking a series of ActionWidgets in response to those events.

In order for the events to be trapped:

  • The event must be of one of the events specified in the event catcher widget's events attribute
  • The event must target a DOM node with an ancestor that matches the widget's selector attribute
  • Depuis : 5.2.2 Optionally, the DOM node targeted by the event must also match the widgets matchSelector attribute
  • The event must support event bubbling

Use of the event catcher widget is beneficial when using large numbers of other trigger widgets such as the ButtonWidget is causing performance problems. The workflow it enables is akin to what is referred to as "event delegation" in JavaScript parlance.

Content and Attributes

The content of the <$eventcatcher> widget is displayed normally.

AttributeDescription
selectorA CSS selector. Only events originating inside a DOM node with this selector will be trapped
matchSelector Depuis : 5.2.2 An optional CSS selector. Only events targeting DOM nodes matching this selector will be trapped
{any attributes starting with $} Depuis : 5.2.0 Each attribute name (excluding the $) specifies the name of an event, and the value specifies the action string to be invoked. For example: $click=<<clickActions>>
tagOptional. The HTML element the widget creates to capture the events, defaults to:
» span when parsed in inline-mode
» div when parsed in block-mode
classOptional. A CSS class name (or names) to be assigned to the widget HTML element
stopPropagation Depuis : 5.2.0 Optional. Set to "always" to always stop event propagation even if there are no corresponding actions to invoke, "never" to never stop event propagation, or the default value "onaction" with which event propagation is only stopped if there are corresponding actions that are invoked.
events(deprecated – see below) Space separated list of JavaScript events to be trapped, for example "click" or "click dblclick"
actions-*(deprecated – see below) Action strings to be invoked when a matching event is trapped. Each event is mapped to an action attribute name of the form actions-event where event represents the type of the event. For example: actions-click or actions-dblclick

Depuis : 5.2.0 Note that the attributes events and actions-* are no longer needed. Instead you can use attributes starting with $ where the attribute name (excluding the $) specifies the name of the event and the value specifies the action string to be invoked. If any attributes with the prefix $ are present then the types attribute is ignored.

Variables

The following variables are made available to the actions:

VariablesDescription
dom-*All DOM attributes of the node matching the given selector are made available as variables, with the prefix dom-
modifierThe modifier Variable contains the Modifier Key held during the event (can be "normal", "ctrl", "shift", "alt" or combinations thereof)
event-mousebuttonThe mouse button (if any) used to trigger the event (can be "left", "right" or "middle"). Note that not all event types support the mousebutton property
event-typeThe type property of the JavaScript event
event-detail-*Any properties in the detail attribute of the event are made available with the prefix event-detail-
tv-popup-coordsA relative co-ordinate string that can be used with the ActionPopupWidget to trigger a popup at the DOM node matching the selector where the event originated (see Coordinate Systems for more information)
tv-popup-abs-coords Depuis : 5.2.4 An absolute co-ordinate string that can be used with the ActionPopupWidget to trigger a popup at the DOM node matching the selector where the event originated (see Coordinate Systems for more information)
tv-widgetnode-width Depuis : 5.2.3 offsetWidth of the DOM node created by the eventcatcher widget
tv-widgetnode-height Depuis : 5.2.3 offsetHeight of the DOM node created by the eventcatcher widget
tv-selectednode-posxx offset position of the selected DOM node
tv-selectednode-posyy offset position of the selected DOM node
tv-selectednode-widthoffsetWidth of the selected DOM node
tv-selectednode-heightoffsetHeight of the selected DOM node
event-fromselected-posxx position of the event relative to the selected DOM node
event-fromselected-posyy position of the event relative to the selected DOM node
event-fromcatcher-posxx position of the event relative to the event catcher DOM node
event-fromcatcher-posyy position of the event relative to the event catcher DOM node
event-fromviewport-posx Depuis : 5.2.0 x position of the event relative to the viewport
event-fromviewport-posy Depuis : 5.2.0 y position of the event relative to the viewport

Example

This example uses the ActionLogWidget and will log the data-item-id attribute of the clicked DOM node to the browser's JavaScript console

\define clickactions()
<$action-log item=<<dom-data-item-id>> event=<<event-type>>/>
\end

\define contextmenu-actions()
<$action-log item=<<dom-data-item-id>> event=<<event-type>>/>
\end

<$eventcatcher selector=".item" $click=<<clickactions>> $contextmenu=<<contextmenu-actions>> tag="div">

<div class="item" data-item-id="item1">
Click events here will be trapped
</div>

<div class="item" data-item-id="item2">
And here too
</div>

<div data-item-id="item3">
Not here
</div>

<div class="item" data-item-id="item4">
And here
</div>

</$eventcatcher>

Exemple de config-tiddlyweb-host pour IIS

 2 avril 2022 à 11h58
title: $:/config/tiddlyweb/host
text: $protocol$//$host$/MonAppli/

Example for tag Macro

 16 novembre 2021 à 3h49

This tiddler exists to demonstrate the tag macro.

Exemple de package.json pour IIS

 2 avril 2022 à 11h58
{
    "name": "MesAffaires",
    "description": "La description de ce wiki",
    "dependencies": {
        "sax": "1.2.4",
        "tiddlywiki": "*"
    }
}

Exemple Table des matières: Développable

 21 juin 2015 à 10h19

<div class="tc-table-of-contents">
<<toc-expandable "Contents">>
</div>

Exemple Table des matières: Sélective étendue

 21 juin 2015 à 10h19

<div class="tc-table-of-contents">
<<toc-selective-expandable "Contents">>
</div>

Example Table of Contents: Selectively Expandable (custom icons)

 19 août 2022 à 9h10

Depuis : 5.2.4 It is possible to define the toc-open-icon and toc-closed-icon variable, to change the icons used by the toc macros. This setting works for all toc-macro variants

<$let toc-open-icon="$:/core/images/fold-button" toc-closed-icon="$:/core/images/folder">
<div class="tc-table-of-contents">
<<toc-selective-expandable "Contents">>
</div>
</$let>

Exemple Table des matières: Simple

 21 juin 2015 à 9h08

<div class="tc-table-of-contents">
<<toc "Contents">>
</div>

Exemple Table des matières: Triée étendue

 21 juin 2015 à 9h42

<div class="tc-table-of-contents">
<<toc-expandable "Contents" "sort[title]">>
</div>

Exemple Table des matères: Onglets externes

 21 juin 2015 à 10h18

<$macrocall
	$name="toc-tabbed-external-nav"
	tag="TableOfContents"
	selectedTiddler="$:/temp/toc/selectedTiddler"
	unselectedText="<p>Select a topic in the table of contents. Click the arrow to expand a topic.</p>"
	missingText="<p>Missing tiddler.</p>"
/>

Exemple Table des matières: Onglets internes

 21 juin 2015 à 10h18

<$macrocall
	$name="toc-tabbed-internal-nav"
	tag="TableOfContents"
	selectedTiddler="$:/temp/toc/selectedTiddler"
	unselectedText="<p>Choisir un article dans la table des matières. Click the arrow to expand a topic.</p>"
	missingText="<p>Tiddler manquant.</p>"
/>

Exemple de tiddlywiki.info pour IIS

 2 avril 2022 à 11h58
{
	"description": "Mon wiki",
	"plugins": [
		"tiddlywiki/tiddlyweb",
		"tiddlywiki/filesystem"
	],
	"themes": [
		"tiddlywiki/vanilla",
		"tiddlywiki/snowwhite"
	]
}

Exemple de web.config pour IIS

 2 avril 2022 à 11h58
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <handlers>
            <add 
                name="httpplatformhandler"
                path="*"
                verb="*"
                modules="httpPlatformHandler"
                resourceType="Unspecified"
                requireAccess="Script" />
        </handlers>
        <httpPlatform 
           stdoutLogEnabled="true"
           stdoutLogFile=".\node.log"
           startupTimeLimit="20"
           processPath="C:\Program Files\nodejs\node.exe"
           arguments=".\node_modules\tiddlywiki\tiddlywiki.js ./wiki --listen port=PORT path-prefix=/MonAppli">
            <environmentVariables>
                <environmentVariable name="PORT" value="%HTTP_PLATFORM_PORT%" />
                <environmentVariable name="NODE_ENV" value="Production" />
            </environmentVariables>            
        </httpPlatform>
    </system.webServer>
</configuration>

Exemples d'utilisation

 3 juin 2016 à 5h39

Cette compilation montre des exemples intéressants et inspirants d'utilisation de TiddlyWiki qu'on peut trouver dans la nature. Proposez de nouvelles entrées pour cette collection via GitHub, Twitter ou en postant sur les groupes de discussion TiddlyWiki.

exponential Operator

 11 juin 2019 à 16h45
purposeconvert each number to exponential notation with N digits
inputa selection of titles
parameterN = a number
outputthe input as numbers converted to exponential notation with N digits

Learn more about how to use Filters

Depuis : 5.1.20 See Mathematics Operators for an overview.

The exponential operator returns a string representation of the input number in exponential notation with the specified number of digits. If a number has more digits than requested, the number is rounded to the nearest number represented by the specified number of digits

Examples

exponential Operator (Examples)

 11 juin 2019 à 16h45

123456789 +[exponential[4]]

123456789 +[exponential[13]]

1.23E23 +[exponential[90]]

Exporter un sous-ensemble de tiddlers

 28 novembre 2014 à 17h06

Le mécanisme d'exportation qui a fait son apparition avec la version 5.1.5 de TiddlyWiki permet de sélectionner facilement un sous-ensemble de tiddlers afin de le sauvegarder dans un fichier.

Si par exemple vous souhaitez sauvegarder dans un fichier tous les tiddlers ayant un tag WikiText et contenant un champ fr-title, entrez le filtre [tag[WikiText]has[fr-title]] dans l'onglet Filtre de la Recherche avancée et choisissez Fichier de tiddlers au format JSON après avoir cliqué sur

Vous obtenez alors un fichier nommé tiddlers.json, qui contient tous les tiddlers sélectionnés et qui pourra être réutilisé plus tard via un simple glissé-déposé sur un TiddlyWiki ouvert.

Extended Listops Filters

 27 février 2023 à 17h55

Introduction

A number of filters are used to manipulate lists.

Some filters are designed to move items from the tail of the list and insert them at specified locations in the list, e.g. putafter or putbefore. Items are often appended to the list before using these filters. In general, these filters accept a suffix specifying the number of items to move (default to 1.)

Some filters are designed to either add or remove from the list, a selected range of items from an array, e.g. append or remove. These filters are best used with a reference to an array, stored in a field or data index elsewhere in the wiki (they may be used with a simple list of items, provided the items do not include white space.) In general, these filters accept a suffix specifying the number of items to move (default to All.)

Listops Operators
Operator Purpose !
allafter discard all items except those after the marker
allbefore discard all items except those before the marker
append append a range of items from an array to the list
cycle toggle in the input, the titles specified in the first operand in a cyclical manner
insertafter insert an item T into a list immediately after an item A
insertbefore insert an item T into a list immediately before an item B
move move marker N places in the list
prepend prepend a range of items from an array to the list
putafter move N trailing items after the marker
putbefore move N trailing items before the marker
putfirst move N trailing items to the head of the list
putlast move N leading items to the tail of the list
remove remove a list of titles specified in the operand from the input
replace replace marker with N trailing items
sortby sort the current list in the order of the list referenced in the operand
toggle toggle the title specified in the operand in the input
unique remove all duplicate items from the current list

Examples

In this example we shall populate the 'DataIndex' index of the tiddler 'MyData' with the names of the days of the week, then clear this list.

<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $filter="[list[Days of the Week]]"/>
Get days-of-the-week
</$button> 
<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $filter="[[]]"/>
Clear
</$button>

{{ListopsData}}

Affichera ceci :

DataIndex: 

In this example we shall slice the populated list from the 'DaysOfTheWeek' index of the tiddler 'MyData' in order to insert items before and after a marker item (Wednesday) that are first appended to the list.

<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="one two +[putbefore:2[Wednesday]]"/>
Put 2 Items Before Wednesday
</$button> 
<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="four five +[putafter:2[Wednesday]] three +[putbefore[Wednesday]]"/>
Put One Item Before & Two Items After Wednesday
</$button>

{{ListopsData}}

Affichera ceci :

DataIndex: 

In this example we shall slice the populated list from the 'DaysOfTheWeek' index of the tiddler 'MyData' in order to replace the marker item (Wednesday) with items which are first appended to the list. We shall then move 3 items to the head of the list which have first been appended to the list from referenced fields.

<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="[[---o]] [[o---]] +[replace:2{!!marker}]"/>
Replace '!!marker' with 2 Items
</$button>
<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="[{!!item1}] [{!!item2}] [{!!item3}] +[putfirst:3[]]"/>
Put 3 Items First
</$button>

{{ListopsData}}

Affichera ceci :

DataIndex: 

In this example we shall slice the populated list from the 'DaysOfTheWeek' index of the tiddler 'MyData' in order to append to the truncated list, items from a referenced field. We shall then remove the first two of the items added.

|list: |<$view field="list"/> |

<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="+[allbefore:include[Wednesday]] +[prepend{!!list}]"/>
Prepend '!!list' to items before 'Wednesday'
</$button> 
<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="+[remove:2{!!list}]"/>
Remove first two items in '!!list' from current list
</$button>
<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="+[!remove:1{!!list}]"/>
Remove last item in '!!list' from current list
</$button>

{{ListopsData}}

Affichera ceci :

list:Yesterday Today Tomorrow

DataIndex: 

In this example we shall populate the list with numbers, then move items one by one from the head to the tail and from the tail to the head (best seen by clicking the lower buttons several times.)

This example illustrates that the append[] and prepend[] operators do not enforce unique instances of an item and that, with the next run, any duplicates are removed.

<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $filter="[[]]" $subfilter="+[append:3{!!numbers}]"/>
Setup some numbers
</$button>
<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="+[!append:6{!!numbers}]"/>
Append more numbers
</$button>

<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="+[putfirst:2[]]"/>
Move last 2 items to the head
</$button>
<$button>
<$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="+[putlast[]]"/>
Move the head to the last item
</$button>

{{ListopsData}}

Affichera ceci :

DataIndex: 

External Attachments Plugin

 31 octobre 2017 à 17h24

The External Attachments Plugin provides support for importing tiddlers as external attachments. That means that instead of importing binary files as self-contained tiddlers, they are imported as "skinny" tiddlers that reference the original file via the _canonical_uri field. This reduces the size of the wiki and thus improves performance. However, it does mean that the wiki is no longer fully self-contained.

This plugin only works when using TiddlyWiki with platforms such as TiddlyDesktop that support the path attribute for imported/dragged files.

Images externes

 24 juin 2015 à 10h26

Les images externes dans TiddlyWiki sont des tiddlers qui pointent sur l'URI d'une image, plutôt que d'avoir à incorporer toutes les données de l'image. Ils fonctionnent mieux que l'affichage d'images incorporées, notamment avec les images de grande taille. Cependant, leur utilisation détourne TiddlyWiki de sa vocation de fichier unique.

Les images externes sont utilisées dans le navigateur. Elles peuvent être créées soit par la configuration Node.js lors de la production d'un TiddlyWiki, soit manuellement en éditant un TiddlyWiki dans le navigateur .

Qu'est-ce qu'une image externe

Une image externe est un tiddler image ordinaire avec un champ _canonical_uri contenant l'URI de l'image. L'URI pointe de façon absolue ou relative vers le document HTML. Si le champ _canonical_uri est renseigné, alors le champ text du tiddler est ignoré et peut être omis.

Création manuelle d'Images Externes

Pour créer manuellement une image externe, il suffit juste de créer un tiddler avec le type de contenu image approprié, puis d'ajouter un champ _canonical_uri dont l'URI pointe vers l'emplacement de stockage de l'image.

IMPORTANT : Revérifiez votre orthographe. _canonical_uri s'épelle URI, et pas URL.

Création d'images externes sous Node.js

Suivre les étapes suivantes pour créer une version HTML statique d'un fichier wiki accompagné d'un dossier images contenant les références des images externes :

  1. Créer des Tiddlers image dans votre TiddlyWikiFolders de façon habituelle
  2. Sauvegardez les images en fichiers séparées (par convention, dans le sous-répertoire nommé images)
  3. Externalisez les Tiddlers image en leur attribuant un champ _canonical_uri
  4. Sauvegardez le fichier HTML principal

Notez que les fichiers images doivent être sauvegardés avant d'être externalisés. Leur externalisation écrasera les champs text de la mémoire de votre wiki, ce qui signifie que toute tentative de sauvegarde échouera.

Pour un exemple, voir la génération de la cible externalimages dans la demo tw5.com wiki :

--savetiddlers [is[image]] images
--setfield [is[image]] _canonical_uri $:/core/templates/canonical-uri-external-image text/plain
--setfield [is[image]] text "" text/plain
--rendertiddler $:/core/save/all externalimages.html text/plain

Sauvegardez les images en fichiers séparées

La commande --savetiddlers suivante peut être utilisée pour sauvegarder les images d'un wiki dans un sous-répertoire images :

--savetiddlers [is[image]] images

Externalisez les Tiddlers Image

Deux commandes --setfield sont utilisées : la première affecte au champ _canonical_uri l'URI correspondant au titre du tiddler, et la deuxième efface le champ text.

--setfield [is[image]] _canonical_uri $:/core/templates/canonical-uri-external-image text/plain
--setfield [is[image]] text "" text/plain

Le tiddler gabarit $:/core/templates/canonical-uri-external-image contient :

<!--

This template is used to assign the ''_canonical_uri'' field to external images.

Change the `./images/` part to a different base URI. The URI can be relative or absolute.

-->
./images/<$view field="title" format="doubleurlencoded"/>

Notez que ces opérations modifient les tiddlers dans la mémoire du wiki et peuvent donc affecter le fonctionnement de commandes ultérieures.

Utilisation d'Images Externes

Vous ne pouvez pas éditer une image externe directement dans le navigateur, sauf en changeant le champ URI pour pointer vers une image différente.

Favorites by Mohammad

 17 novembre 2020 à 15h59

Favorites plugin is a set of tool for creating favorites (bookmarks) in Tiddlywiki. Each favorite item is a shortcut to a tiddler.

https://kookma.github.io/TW-Favorites/

A favorite item also called a bookmark is a shortcut, you are creating for quick access to it. You can access that bookmark at any time and view that as many times as you want without having to search and find it again.

The Favorites plugin contains three modes

  • flat mode: one favorite list, no folder
  • structured mode: use folder, search tool, export and delete tool
  • frozen list: read only, simple table of content style

Fonctionnalités

 31 mai 2015 à 19h51

Federatial

 19 février 2022 à 16h48

Federatial Limited est une entreprise de consultants en logiciel fondée par JeremyRuston, le créateur de TiddlyWiki.

Federatial aide les organisations à explorer de nouveaux concepts d'interaction utilisateur grâce au prototypage rapide d'outils sophistiqués basés sur le web.

Pour plus d'informations, visitez https://federatial.com/ et https://twitter.com/federatial.

Federatial.png

 

FederatialLimited

 23 juin 2015 à 7h34

Federatial Limited est une entreprise de consulting fondée par JeremyRuston et spécialisée dans la compréhension des impacts du web sur le travail collaboratif.

Visitez http://federatial.com/ et http://twitter.com/federatial pour plus d'information.

FetchCommand

 18 février 2017 à 13h15

Télécharge un ou plusieurs fichiers via HTTP/HTTPS, puis importe les tiddlers correspondant à un filtre, en transformant optionnellement les titres des tiddlers importés.

--fetch file <url> <filtre-import> <filtre-de-transformation>
--fetch files <filtre-urls> <filtre-import> <filtre-de-transformation>

Avec la variante "file", un seul fichier est téléchargé et le premier paramètre est l'URL du fichier à lire.

Avec la variante "files", plusieurs fichiers sont téléchargés et le premier paramètre est un filtre produisant une liste d'URLs pour les fichiers à lire. Par exemple, étant donné un ensemble de tiddlers tagués "remote-server" et disposant d'un champ "url", le filtre [tag[remote-server]get[url]] permet de récupérer toutes les URLs disponibles.

Le paramètre <filtre-import> spécifie un filtre qui détermine quels tiddlers seront importés. Lorsqu'il n'est pas indiqué, il prend comme valeur par défaut [all[tiddlers]].

Le paramètre <filtre de transformation> spécifie un filtre optionnel qui transforme les titres des tiddlers importés. Par exemple, [addprefix[$:/myimports/]] permettrait d'ajouter le préfixe $:/myimports/ à chaque titre.

On obtient des informations concernant la progression de l'importation en faisant précéder la commande --fetch de la commande --verbose.

Il faut noter que TiddlyWiki ne téléchargera pas une version plus ancienne d'un plugin déjà chargé.

L'exemple ci-dessous récupère tous les tiddlers non-système de https://tiddlywiki.com et les enregistre dans un fichier JSON :

tiddlywiki --verbose --fetch file "https://tiddlywiki.com/" "[!is[system]]" "" --rendertiddler "$:/core/templates/exporters/JsonFile" output.json text/plain "" exportFilter "[!is[system]]"

Field Editor Cascade

 5 mars 2022 à 17h39

The field editor cascade is a cascade used to choose a template for rendering the field editor within the EditTemplate.

The core field editor cascade can be found in $:/core/ui/EditTemplate/fields

The default field editor cascade only contains one element:

  1. Use the tiddler $:/core/ui/EditTemplate/fieldEditor/default to render the field

See Customizing EditTemplate field rendering for more details.

You can see the current settings for the field editor cascade in $:/ControlPanel under the Info -> Advanced -> Cascades -> Field Editor tab.

field Operator

 3 février 2015 à 18h47
purposefilter the input by field
inputa selection of titles
suffixF = the name of a field
parameterS = a possible value of field F
outputthose input tiddlers in which field F has the value S
! outputthose input tiddlers in which field F does not have the value S

Learn more about how to use Filters

If S is empty, field will match both of the following:

  • tiddlers that don't contain field F
  • tiddlers in which field F exists but has an empty value

The syntax of a filter step treats any unrecognised filter operator as if it was the suffix to the field operator. See the examples.

Examples

field Operator (Examples)

 18 janvier 2015 à 18h32

[field:author[JeremyRuston]]
→ plugins authored by JeremyRuston

[plugin-type[theme]author[JeremyRuston]]
→ themes authored by JeremyRuston

FieldMangler Widget (Examples)

 6 juillet 2015 à 18h29


<$fieldmangler>
Add tag ''example'' to this tiddler (current)<$button message="tm-add-tag" param="example">{{$:/core/images/new-button}}</$button>
<br>
Remove tag ''example'' to this tiddler (current)<$button message="tm-remove-tag" param="example">{{$:/core/images/delete-button}}</$button>
</$fieldmangler>


<$fieldmangler tiddler="Hello World">
Add tag ''example'' to the Hello World tiddler<$button message="tm-add-tag" param="example">{{$:/core/images/new-button}}</$button>
<br>
Remove tag ''example'' to the Hello World tiddler<$button message="tm-remove-tag" param="example">{{$:/core/images/delete-button}}</$button>
</$fieldmangler>

FieldManglerWidget

 9 octobre 2021 à 13h28

Introduction

The field mangler widget manipulates the fields and tags of a tiddler. It does so in response to the following Messages:

MessageDescription
tm-remove-fieldRemove the field specified in event.param
tm-add-fieldAdd the field specified in event.param
tm-remove-tagRemove the tag specified in event.param
tm-add-tagAdd the tag specified in event.param

Content and Attributes

The field mangler widget displays any contained content, and responds to Messages dispatched within it.

AttributeDescription
tiddlerTitle of the tiddler to manipulate (defaults to the current tiddler)

fields Operator

 29 janvier 2020 à 16h50
purposeselect all field names of the input titles
inputa selection of titles
suffix Depuis : 5.1.22 optional: include, exclude parameter list
parameter Depuis : 5.1.22 optional: a list of field names
outputall the field names contained in the input tiddlers

Learn more about how to use Filters

Each input title is processed in turn. Its list of field names is retrieved (in no particular order) and then dominantly appended to the operator's output.

Depuis : 5.1.22 If the include suffix is used, fields are only included, if they exist. It doesn't matter, if fields have a value. The exclude suffix is there for convenience, since it would be possible to use a second filter run. For more info see the examples.

Examples

fields Operator (Examples)

 29 janvier 2020 à 16h56

[[HelloThere]fields[]]
→ fields of HelloThere

[[HelloThere]fields:include[list title text non-existing]]
→ fields of HelloThere using a "short list" of fields. Fields are only shown, if they exist

[[HelloThere]fields:include[list title text]sortby[title list text]]
→ fields of HelloThere special sorting

[[HelloThere]fields:exclude[list title text]]
→ fields of HelloThere using the exclude suffix

[[HelloThere]fields[]] -list -title -text
→ fields of HelloThere, using several filter runs instead of exclude suffix

[tag[Common Operators]fields[]]
→ fields of all tiddlers tagged as Common Operators

FieldsWidget

 20 février 2015 à 16h12

Introduction

The fields widget renders each field of a specified tiddler through a simple text template. A list of fields to exclude can be provided. It is used internally by TiddlyWiki5, notably by the FileSavingMechanism.

Template Handling

The provided template is rendered with the following special substitutions:

SymbolSubstitution
$name$Field name
$value$Field value
$encoded_value$HTML encoded form of field value

Content and Attributes

The content of the <$fields> widget is ignored.

AttributeDescription
tiddlerTitle of the tiddler from which the fields are to be displayed (defaults to the current tiddler)
templateText of the template (see above)
excludeLists of fields to be excluded (defaults to "text")
includeLists of fields to be included, if the field exists. This parameter takes precedence over "exclude"
sortSorts the fields by name (defaults to "yes"). Set to "no", if "include" order should be retained!
sortReverseReverses the sort order
stripTitlePrefixIf set to "yes" then curly bracketed prefixes are removed from titles (for example {prefix}HelloThere converts to HelloThere)

The stripTitlePrefix attribute is used when building TiddlyWiki Classic; see editions/tw2 in the TiddlyWiki5 repo.

FillWidget

 11 mai 2023 à 13h34

Introduction

Depuis : 5.3.0 The $fill widget is used within a $transclude widget to specify the content that should be copied to the named "slot". Slots are defined by the $slot widget within the transcluded content.

See the $transclude widget for details and an example. More examples can be found in the $slot widget documentation.

Attributes

The content of the $fill widget is used as the content to be passed to the transclusion.

AttributeDescription
$nameThe name of the slot to be filled

The $name attribute must be specified as a literal string

Expression d'un filtre

 21 juin 2015 à 11h33
Espacevierge+-sequence

L'expression d'un filtre est le plus haut niveau de la syntaxe d'un filtre.Elle est composée d'une ou plusieurs séquences.

Une entrée de séquence est souvent une liste de tous les titres des tiddlers non-shadow du wiki (sans tri particulier). Mais le préfixe + peut modifier cela.

  • Si une séquence ne comporte pas de préfixe + ou -, ces titres en sortie sont ajoutés par prépondérance au résultat du filtre.
  • Si une séquence comporte un préfixe -, les titres en sortie sont extraits du résultat du filtre (s'ils y étaient).
  • Si une séquence comporte un préfixe +, elle compare les sorties du filtre à ses entrées. La sortie du filtre est alors entièrement remplacée par les séquences qui se recoupent. Toutes séquences de titres de tiddler suivantes sont traitées comme des entrées, à moins qu'elles n'aient aussi un préfixe +.

En termes techniques plus concis :

SéquenceInterpretationOutput
séquenceréunion... OR séquence
+séquenceintersection... AND séquence
-séquenceexclusion... AND NOT séquence

Filter Filter Run Prefix

 29 novembre 2021 à 2h25

Depuis : 5.1.23

purposeremove every input title for which the filter run output is an empty list
inputall titles from previous filter runs
outputthe input titles for which the filter run is not empty

It receives the filter output so far as its input. The next run is evaluated for each title of the input, removing every input title for which the output is an empty list.

Note that within the filter run, the "currentTiddler" variable is set to the title of the tiddler being processed. This permits filter runs like :filter[{!!price}multiply{!!cost}compare:integer:gteq[5]] to be used for computation. The value of currentTiddler outside the run is available in the variable "..currentTiddler".

The following variables are available within the filter run:

  • currentTiddler - the input title
  • ..currentTiddler - the value of the variable currentTiddler outside the filter run.
  • index - Depuis : 5.2.1 the numeric index of the current list item (with zero being the first item in the list).
  • revIndex - Depuis : 5.2.1 the reverse numeric index of the current list item (with zero being the last item in the list).
  • length - Depuis : 5.2.1 the total length of the input list.

Compare named filter run prefix :filter with filter Operator which applies a subfilter to every input title, removing the titles that return an empty result from the subfilter

Examples

Filter Filter Run Prefix (Examples)

 4 décembre 2021 à 15h48

[tag[HelloThere]] :filter[get[text]length[]compare:integer:gteq[1000]]

[tag[HelloThere]] :filter[get[text]length[]compare:integer:lteq[2000]]

[tag[HelloThere]] :filter[get[text]length[]compare:integer:gteq[1000]] :filter[get[text]length[]compare:integer:lteq[2000]]

[tag[Features]] :filter[links[]!is[shadow]is[missing]]

A B C D E F :filter[<index>remainder[2]compare:integer:eq[0]]
→ Return every other element of the input list

[tag[shopping]] :filter[{!!quantity}compare:integer:gt[4]] :map[addprefix[ ]addprefix{!!quantity}]

[tag[shopping]] :filter[{!!quantity}compare:integer:lteq[4]] :map[addprefix[ ]addprefix{!!quantity}]

Comparison between :filter and :and/+ filter run prefixes

The functionality of the :filter filter run prefix has some overlap with the :and prefix (alias +). Notice the filter expressions above all have the following two properties:

  1. The start of the filter expression transforms the input titles (i.e. get[text]length[], links[], <index>remainder[2], {!!quantity}.
  2. The end of the filter expression only sends input items to the output if they meet some condition (i.e. compare, is).

The purpose of the :filter prefix is to return the original input titles despite property #1 causing those input titles to be transformed. That way, the "meet some condition" check can be performed on something other than the original input. If some filter expression does not require property #1, then the :and prefix can be used instead.

:filter:and
[tag[HelloThere]] :filter[get[text]length[]compare:integer:gteq[1000]]
[tag[HelloThere]] :and[get[text]length[]compare:integer:gteq[1000]]
[tag[Features]] :filter[links[]!is[shadow]is[missing]]
[tag[Features]] :and[links[]!is[shadow]is[missing]]
results are the same
cat can bat bug :filter[suffix[at]minlength[3]]
cat can bat bug :and[suffix[at]minlength[3]]

filter Operator

 22 mai 2021 à 17h25
purposeapply a subfilter to each input title and return the titles that return a non-empty result from the subfilter
inputa selection of titles passed as input to the filter
! inputa selection of titles passed as input to the filter
parameterS = a filter expression
outputthe selection of titles that pass the filter S
! outputthose input titles that do not pass the filter S

Learn more about how to use Filters

Depuis : 5.1.23 The filter operator runs a subfilter for each input title, and returns those input titles for which the subfilter returns a non-empty result (in other words the result is not an empty list). The results of the subfilter are thrown away.

Simple filter operations can be concatenated together directly (eg [tag[HelloThere]search[po]]) but this doesn't work when the filtering operations require intermediate results to be computed. The filter operator can be used to filter on an intermediate result which is discarded. To take the same example but to also filter by those tiddlers whose text field is longer than 1000 characters:

<$vars myfilter="[get[text]length[]compare:integer:gteq[1000]]">
<$list filter="[tag[HelloThere]search[po]filter<myfilter>]">
<div>
<$link>
<$text text=<<currentTiddler>>/>
</$link>
</div>
</$list>
</$vars>

Note that within the subfilter, the "currentTiddler" variable is set to the title of the tiddler being processed. The value of currentTiddler outside the subfilter is available in the variable "..currentTiddler". Depuis : 5.2.0

Compare with the similar subfilter operator which runs a subfilter and directly returns the results

Compare with the analogous named filter run prefix :filter

\define larger-than-1k() [get[text]length[]compare:integer:gteq[1000]]

{{{ [tag[HelloThere]filter<larger-than-1k>] }}}

is equivalent to:

{{{ [tag[HelloThere]] :filter[get[text]length[]compare:integer:gteq[1000]] }}}

Examples

filter Operator (Examples)

 4 octobre 2020 à 15h33

These examples use the following predefined variables:

  • larger-than-1k: [get[text]length[]compare:integer:gteq[1000]]
  • smaller-than-2k: [get[text]length[]compare:integer:lteq[2000]]
  • contains-missing-links: [links[]!is[shadow]is[missing]]

[tag[HelloThere]filter<larger-than-1k>]

[tag[HelloThere]filter<smaller-than-2k>]

[tag[HelloThere]filter<larger-than-1k>filter<smaller-than-2k>]

[tag[Features]filter<contains-missing-links>]

Filtre, Opérateurs

 22 juin 2015 à 11h59

Un opérateur de filtre est un motclé prédéfini attaché à une étape individuelle d'un filtre. Il définit une action particulière de cette étape.

Le tableau suivant liste tous les opérateurs du noyau. Les plus communs sont côchés. La troisième colonne indique quels opérateurs acceptent le ! préfixe pour inverser leur expression.

Opérateur Propose Neg
abs calculate the absolute value of a list of numbers
acos calculate the arccosine value (in radians) of a list of numbers
add treating each input title as a number, add to each the numeric value of the operand
all find all titles of a fundamental category
asin calculate the arcsine value (in radians) of a list of numbers
atan calculate the arctangent value (in radians) of a list of numbers
atan2 returns the angle in the plane (in radians) between the positive x-axis and the ray from (0,0) to the point (x,y), for [Y]atan2[X]
average treating each input title as a number, compute their arithmetic mean
backlinks find the titles that link to each input title
ceil rounds a list of numbers up to the next largest integer
charcode generates string characters from their numeric character codes
contains filter the input by searching list fields for a value !
cos calculate the cosine value of a list of angles (given in radians)
count count the number of entries in a list
days filter the input by date !
divide treating each input title as a number, divide them by the numeric value of the operand
duplicateslugs find titles that yield duplicate slugs
each select one of each group of input titles by field
eachday select one of each group of input titles by date
else if the list of input titles is empty then return a list consisting of a single constant string, otherwise return the original titles
enlist select titles from the operand interpreted as a title list !
exponential convert each number to exponential notation with N digits
field filter the input by field !
fields select all field names of the input titles
filter apply a subfilter to each input title and return the titles that return a non-empty result from the subfilter !
fixed convert each number to fixed point notation with N digits after the decimal point
floor rounds a list of numbers to the largest integer less than or equal to each number
function apply a function to the input list, and return the result
get select all values of a field in the input titles
getindex select all values of a data property in the input titles
has filter the input by field existence !
haschanged filter the input by tiddler modification status !
indexes select all data properties of the input titles
is filter the input by fundamental category !
join join a list of strings together with the separator S
jsonextract retrieve the JSON string of a property from JSON strings
jsonget retrieve the value of a property from JSON strings
jsonindexes retrieve the value of a property from JSON strings
jsontype retrieve the type of a property from JSON strings
length returns the number of characters of each item in the list
links find the titles linked to by each input title
list select titles via a list field !
listed find the titles that list the input titles
log treating each input title as a number, return its logarithm with base equal to the numeric value of the operand if specified, otherwise base e
lookup applies a prefix to each input title to yield the title of a tiddler from which the final value is retrieved. With a single parameter, the default field is "text" and the default index is "0". If a second parameter is provided, that becomes the target field or index.
lowercase returns each item in the list as lowercase
match returns each item in the list that matches the operand string
max treating each input title as a number, take the maximum of its value and the numeric value of the operand
maxall find the largest of a list of numbers
median treating each input title as a number, compute their median value
min treating each input title as a number, take the minimum of its value and the numeric value of the operand
minall find the smallest of a list of numbers
minlength filter items shorter than the specified minimum length
multiply treating each input title as a number, multiply it by the numeric value of the operand
negate calculate the negation of a list of numbers
power treating each input title as a number, raise it to the power of the numeric value of the operand
precision convert each number to a string with N significant digits
product produce the product of the input numbers
range generate a range of numbers !
reduce apply a subfilter to each input title in turn, accumulating a single value
regexp filter the input by pattern-matched field !
remainder treating each input title as a number, return the remainder when divided by the numeric value of the operand
round rounds a list of numbers to the nearest integer
sameday filter the input by date
search filter the input by searching tiddler content !
sentencecase returns each item in the list with the first letter capitalised
sign return -1, 0 or 1 for a list of numbers according to whether each number is negative, zero, or positive
sin calculate the sine value of a list of angles (given in radians)
slugify returns each item in the list in a human-readable form for use in URLs or filenames
split returns each item in the list split into separate strings according to the specified separator S; duplicates are not removed
splitregexp returns each item in the list split into separate strings according to the specified regular expression R
standard-deviation treating each input title as a number, compute their standard-deviation
subfilter select titles from the operand interpreted as a filter expression !
subtract treating each input title as a number, subtract from each the numeric value of the operand
sum produce the sum of the input numbers
tan calculate the tangent value of a list of angles (given in radians)
then replace input titles by a constant string
title select a single title !
titlecase returns each item in the list with each word capitalised
trunc truncates a list of numbers to their integer part, removing any fractional part
untrunc rounds a list of numbers to the next integer with largest absolute value, that is, away from zero
uppercase returns each item in the list as uppercase
variance treating each input title as a number, compute their variance
Opérateurs de classement
after find which input title follows a specified one
allafter discard all items except those after the marker
allbefore discard all items except those before the marker
append append a range of items from an array to the list
before find which input title precedes a specified one
bf same as rest
butfirst same as rest
butlast discard the last N input titles
cycle toggle in the input, the titles specified in the first operand in a cyclical manner
first select the first N input titles
insertafter insert an item T into a list immediately after an item A
insertbefore insert an item T into a list immediately before an item B
last select the last N input titles
limit select the first or last N input titles !
move move marker N places in the list
next find which titles in a list field follow the input ones
nsort sort the input by number field !
nsortcs sort the input titles by number field, treating upper and lower case as different !
nth select the Nth input title
order selectively reverse the input list
prepend prepend a range of items from an array to the list
previous find which titles in a list field precede the input ones
putafter move N trailing items after the marker
putbefore move N trailing items before the marker
putfirst move N trailing items to the head of the list
putlast move N leading items to the tail of the list
remove remove a list of titles specified in the operand from the input
replace replace marker with N trailing items
rest discard the first N input titles
reverse reverse the order of the input titles
sort sort the input by text field !
sortan sort the input by text field considering them as alphanumerics !
sortby sort the current list in the order of the list referenced in the operand
sortcs sort the input by text field, treating upper and lower case as different !
sortsub sort the input by the result of evaluating a subfilter for each item !
toggle toggle the title specified in the operand in the input
unique remove all duplicate items from the current list
zth select the Zth input title
Opérateurs de chaine
addprefix extend each input title with a prefix
addsuffix extend each input title with a suffix
applypatches applies a set of patches to transform the input
compare filter the input by comparing each item against the operand !
decodebase64 apply base 64 decoding to a string
decodehtml apply HTML decoding to a string
decodeuri apply URI decoding to a string
decodeuricomponent apply URI component decoding to a string
encodebase64 apply base 64 encoding to a string
encodehtml apply HTML encoding to a string
encodeuri apply URI encoding to a string
encodeuricomponent apply URI component encoding to a string
enlist-input select titles by interpreting each input title as a title list
escapecss apply CSS escaping to a selection of titles through the CSS.escape() method / operation
escaperegexp escape special characters used in regular expressions
format format the input string according to one of supported formats
jsonstringify deprecated, use stringify instead
levenshtein determine the Levenshtein distance of the input title(s) and a given string
makepatches returns a set of patches that transform the input to a given string
pad returns each item in the list padded to the specified length
prefix filter the input titles by how they start !
removeprefix filter the input titles by how they start, deleting that prefix
removesuffix filter the input titles by how they end, deleting that suffix
search-replace returns each item in the list, replacing within each title the string specified by the first parameter with the second parameter
sha256 apply sha256 hash to a string
splitbefore select a delimited prefix from each input title
stringify apply JavaScript string encoding to a string
substitute returns each item in the list, replacing within each title placeholders for filters, parameters and variables with their corresponding values
suffix filter the input titles by how they end !
trim returns each item in the list with whitespace, or a given character string, trimmed from the start and/or end
Opérateurs de tag
tag filter the input by tag !
tagging find the tiddlers that have the input tags
tags select all tags of the input tiddlers
untagged discard any input titles that have tags !
Opérateurs Spéciaux
commands select the titles of all the Node.js commands
deserialize extract JSON representation of tiddlers from the input strings
deserializers
editiondescription select the descriptions of the input editions
editions select the names of all the TiddlyWiki editions
getvariable select all values of variables named in the input titles
modulesproperty retrieve a module property
modules select the names of all modules of the input module types
moduletypes select the names of all TiddlyWiki module types
plugintiddlers select all shadow titles in the input plugins
shadowsource select the plugin titles that contain the input shadows
storyviews select the names of all the story views
subtiddlerfields select all fields present in the selected tiddlers within a plugin
variables select the names of all the actively defined variables

La rédaction d'une étape typique s'écrit [opérateur[paramètre]], même si tous les opérateurs ne nécessitent pas de paramètre.

La plupart des étapes agissent sur les titres d'une sélection qu'ils ont en entrée, mais quelques uns construisent une sélection entièrement neuve à la place. Pour des règles précises, voir Syntaxe des filtres.

Paramètre d'un filtre

 21 juin 2015 à 12h13
[tout sauf ]]{tout sauf }}<tout sauf >>

Le paramètre de l'opérateur de filtre peut être :

dur
[comme ceci]
Le paramètre est le texte exact tel qu'il apparait entre les crochets.
souple
indirect
{comme ceci}
Le paramètre est le texte mentionné par la Référence Textuelle dont le nom apparaît entre les accolades, c'est à dire un champ d'un tiddler spécifique, ou la valeur d'une propriété d'un tiddler de données.
variable
<comme ceci>
Le paramètre est la valeur actuelle de la variable dont le nom apparaît entre les chevrons. Les paramètres Macro ne sont pas supportés.

Séquence d'un filtre

 21 juin 2015 à 11h42
[etape]tout sauf [ ] ou Espacevierge"tout sauf ""'tout sauf '"

Une séquence se compose d'étapes. Elle génère une sélection. Un ensemble de séquences forme une vaste expression filtre.

Les étapes sont traitées de gauche à droite. Ce qui entre dans la première étape correspond à ce qui entre dans la séquence. Pour chaque étape suivante, l'entrée provient de la sortie de l'étape précédente.

Le résultat du filtre d'une étape dépend de son opérateur:

  • La plupart des opérateurs forment leurs résultats à partir de leurs entrées. Par exemple, la plupart produisent un sous-ensemble de leur entrée, et se faisant, méritent vraiment leur nom de "filtres",car ils réduisent la taille du résultat généré par la séquence. Ces opérateurs sont nommés modifieurs de sélection.
  • Quelques opérateurs ignorent leurs entrées et génèrent un résultat indépendant. Ils sont appelés constructeurs de sélection : Ils construisent une sélection entièrement nouvelle.

Un bon exemple de constructeur est l'opérateur title. Le résultat de [title[A]title[B]] est juste B. Mais l'ajout de l'opérateur modifieur field, [title[A]field:title[B] ne produit plus rien du tout.

Les trois options basses du diagramme correspondent aux syntaxes SalutàTous, "SalutàTous", 'SalutàTous' et "Opérateurs de Filtre". Ce sont des abrégés de [title[...]].

Les options cotées existent pour tenir compte des titres contenant des crochets, comme, "Un Tiddler [[[[Peucourant]]]]".

Filter Run Prefix (Examples)

 29 novembre 2021 à 3h25

Étape d'un filtre

 21 juin 2015 à 11h59
!operateur:suffixeparametre

Une étape correspond à une opération unique au sein d'un filtre.

En termes de développement, cela s'apparente à l'appel d'une fonction où l'entrée d'une étape est passée comme un paramètre implicite. La sortie d'une étape est une sélection qui contribue à former une séquence et donc aussi à l'expression du filtre entière qui la contient.

L'opérateur d'étape est issu d'une liste de motsclés prédéfinis, et qui peut être étendue par des plugins. Tout opérateur inconnu est traité comme s'il était le suffixe de l'opérateur field. Si un opérateur d'étape est omis, sa valeur par défaut est title.

Le suffixe est un texte additionnel, souvent le nom d'un field, qui étend la signification de certains opérateurs.

Plusieurs étapes requièrent une valeur de paramètre explicite, aussi connue sous le nom d'opérande, qui définit ce que l'étape doit faire.

Syntaxe d'un filtre

 21 juin 2015 à 10h58
Les Filtres suivent une grammaire représentée ici par des diagrammes en chemin de fer, pour ceux qui trouvent utile une description formelle de la syntaxe. Cependant, vous pouvez apprendre à écrire des filtres sans avoir besoin de comprendre ces tiddlers modèle de description.

Un filtre est un tube qui transforme une entrée en sortie. Les entrées et les sorties sont des ensembles ordonnés de titres de tiddlers ou de champs.

Les Filtres sont des expressions construites à partir de plus petits blocs, appelés séquences ou étapes, chacun d'entre eux transformant une entrée en sortie.

Un filtre débute avec un sortie vide. Il s'exécute de gauche à droite, puis progressivement modifie et compose la sortie finale.

Ci-dessous, les détails des différents blocs de construction impliqués :

Espacevierge

 21 juin 2015 à 12h13
espacetabsautligneretourtab verticalesautpage

Des espaces vierges peuvent exister entre chaque séquence ou expression filtre.

Filtered Attribute Values

 15 juin 2023 à 5h52

Filtered attribute values are indicated with triple curly braces around a Filter Expression. The value will be the first item in the resulting list, or the empty string if the list is empty.

Depuis : 5.2.2 To improve readability, newlines can be included anywhere that whitespace is allowed within filtered attributes.

This example shows how to add a prefix to a value:

<$text text={{{ [<currentTiddler>addprefix[$:/myprefix/]] }}} />

The value of the attribute will be the exact text from the first item in the resulting list. Any wiki syntax in that text will be left as-is.

FilterOperator: fields

 6 octobre 2014 à 11h32

L'opérateur de filtre fields est un sélecteur qui renvoie les noms de tous les champs utilisés dans les tiddlers sélectionnés.

Chaîne de filtreDescription
[[HelloThere]fields[]]Renvoie les champs présents dans le tiddler HelloThere
[tag[monTag]fields[]]Renvoie l'ensemble de tous les champs présents dans les tiddlers ayant pour tag monTag

Opérateurs de filtre

 19 juin 2015 à 19h53

Un opérateur de filtre est un motclé prédéfini attaché à une étape individuelle d'un filtre. Il définit une action particulière de cette étape.

Le tableau suivant liste tous les opérateurs du noyau. Les plus communs sont côchés. La troisième colonne indique quels opérateurs acceptent le ! préfixe pour inverser leur expression.

Opérateur Propose Neg
abs calculate the absolute value of a list of numbers
acos calculate the arccosine value (in radians) of a list of numbers
add treating each input title as a number, add to each the numeric value of the operand
all find all titles of a fundamental category
asin calculate the arcsine value (in radians) of a list of numbers
atan calculate the arctangent value (in radians) of a list of numbers
atan2 returns the angle in the plane (in radians) between the positive x-axis and the ray from (0,0) to the point (x,y), for [Y]atan2[X]
average treating each input title as a number, compute their arithmetic mean
backlinks find the titles that link to each input title
ceil rounds a list of numbers up to the next largest integer
charcode generates string characters from their numeric character codes
contains filter the input by searching list fields for a value !
cos calculate the cosine value of a list of angles (given in radians)
count count the number of entries in a list
days filter the input by date !
divide treating each input title as a number, divide them by the numeric value of the operand
duplicateslugs find titles that yield duplicate slugs
each select one of each group of input titles by field
eachday select one of each group of input titles by date
else if the list of input titles is empty then return a list consisting of a single constant string, otherwise return the original titles
enlist select titles from the operand interpreted as a title list !
exponential convert each number to exponential notation with N digits
field filter the input by field !
fields select all field names of the input titles
filter apply a subfilter to each input title and return the titles that return a non-empty result from the subfilter !
fixed convert each number to fixed point notation with N digits after the decimal point
floor rounds a list of numbers to the largest integer less than or equal to each number
function apply a function to the input list, and return the result
get select all values of a field in the input titles
getindex select all values of a data property in the input titles
has filter the input by field existence !
haschanged filter the input by tiddler modification status !
indexes select all data properties of the input titles
is filter the input by fundamental category !
join join a list of strings together with the separator S
jsonextract retrieve the JSON string of a property from JSON strings
jsonget retrieve the value of a property from JSON strings
jsonindexes retrieve the value of a property from JSON strings
jsontype retrieve the type of a property from JSON strings
length returns the number of characters of each item in the list
links find the titles linked to by each input title
list select titles via a list field !
listed find the titles that list the input titles
log treating each input title as a number, return its logarithm with base equal to the numeric value of the operand if specified, otherwise base e
lookup applies a prefix to each input title to yield the title of a tiddler from which the final value is retrieved. With a single parameter, the default field is "text" and the default index is "0". If a second parameter is provided, that becomes the target field or index.
lowercase returns each item in the list as lowercase
match returns each item in the list that matches the operand string
max treating each input title as a number, take the maximum of its value and the numeric value of the operand
maxall find the largest of a list of numbers
median treating each input title as a number, compute their median value
min treating each input title as a number, take the minimum of its value and the numeric value of the operand
minall find the smallest of a list of numbers
minlength filter items shorter than the specified minimum length
multiply treating each input title as a number, multiply it by the numeric value of the operand
negate calculate the negation of a list of numbers
power treating each input title as a number, raise it to the power of the numeric value of the operand
precision convert each number to a string with N significant digits
product produce the product of the input numbers
range generate a range of numbers !
reduce apply a subfilter to each input title in turn, accumulating a single value
regexp filter the input by pattern-matched field !
remainder treating each input title as a number, return the remainder when divided by the numeric value of the operand
round rounds a list of numbers to the nearest integer
sameday filter the input by date
search filter the input by searching tiddler content !
sentencecase returns each item in the list with the first letter capitalised
sign return -1, 0 or 1 for a list of numbers according to whether each number is negative, zero, or positive
sin calculate the sine value of a list of angles (given in radians)
slugify returns each item in the list in a human-readable form for use in URLs or filenames
split returns each item in the list split into separate strings according to the specified separator S; duplicates are not removed
splitregexp returns each item in the list split into separate strings according to the specified regular expression R
standard-deviation treating each input title as a number, compute their standard-deviation
subfilter select titles from the operand interpreted as a filter expression !
subtract treating each input title as a number, subtract from each the numeric value of the operand
sum produce the sum of the input numbers
tan calculate the tangent value of a list of angles (given in radians)
then replace input titles by a constant string
title select a single title !
titlecase returns each item in the list with each word capitalised
trunc truncates a list of numbers to their integer part, removing any fractional part
untrunc rounds a list of numbers to the next integer with largest absolute value, that is, away from zero
uppercase returns each item in the list as uppercase
variance treating each input title as a number, compute their variance
Opérateurs de classement
after find which input title follows a specified one
allafter discard all items except those after the marker
allbefore discard all items except those before the marker
append append a range of items from an array to the list
before find which input title precedes a specified one
bf same as rest
butfirst same as rest
butlast discard the last N input titles
cycle toggle in the input, the titles specified in the first operand in a cyclical manner
first select the first N input titles
insertafter insert an item T into a list immediately after an item A
insertbefore insert an item T into a list immediately before an item B
last select the last N input titles
limit select the first or last N input titles !
move move marker N places in the list
next find which titles in a list field follow the input ones
nsort sort the input by number field !
nsortcs sort the input titles by number field, treating upper and lower case as different !
nth select the Nth input title
order selectively reverse the input list
prepend prepend a range of items from an array to the list
previous find which titles in a list field precede the input ones
putafter move N trailing items after the marker
putbefore move N trailing items before the marker
putfirst move N trailing items to the head of the list
putlast move N leading items to the tail of the list
remove remove a list of titles specified in the operand from the input
replace replace marker with N trailing items
rest discard the first N input titles
reverse reverse the order of the input titles
sort sort the input by text field !
sortan sort the input by text field considering them as alphanumerics !
sortby sort the current list in the order of the list referenced in the operand
sortcs sort the input by text field, treating upper and lower case as different !
sortsub sort the input by the result of evaluating a subfilter for each item !
toggle toggle the title specified in the operand in the input
unique remove all duplicate items from the current list
zth select the Zth input title
Opérateurs de chaine
addprefix extend each input title with a prefix
addsuffix extend each input title with a suffix
applypatches applies a set of patches to transform the input
compare filter the input by comparing each item against the operand !
decodebase64 apply base 64 decoding to a string
decodehtml apply HTML decoding to a string
decodeuri apply URI decoding to a string
decodeuricomponent apply URI component decoding to a string
encodebase64 apply base 64 encoding to a string
encodehtml apply HTML encoding to a string
encodeuri apply URI encoding to a string
encodeuricomponent apply URI component encoding to a string
enlist-input select titles by interpreting each input title as a title list
escapecss apply CSS escaping to a selection of titles through the CSS.escape() method / operation
escaperegexp escape special characters used in regular expressions
format format the input string according to one of supported formats
jsonstringify deprecated, use stringify instead
levenshtein determine the Levenshtein distance of the input title(s) and a given string
makepatches returns a set of patches that transform the input to a given string
pad returns each item in the list padded to the specified length
prefix filter the input titles by how they start !
removeprefix filter the input titles by how they start, deleting that prefix
removesuffix filter the input titles by how they end, deleting that suffix
search-replace returns each item in the list, replacing within each title the string specified by the first parameter with the second parameter
sha256 apply sha256 hash to a string
splitbefore select a delimited prefix from each input title
stringify apply JavaScript string encoding to a string
substitute returns each item in the list, replacing within each title placeholders for filters, parameters and variables with their corresponding values
suffix filter the input titles by how they end !
trim returns each item in the list with whitespace, or a given character string, trimmed from the start and/or end
Opérateurs de tag
tag filter the input by tag !
tagging find the tiddlers that have the input tags
tags select all tags of the input tiddlers
untagged discard any input titles that have tags !
Opérateurs Spéciaux
commands select the titles of all the Node.js commands
deserialize extract JSON representation of tiddlers from the input strings
deserializers
editiondescription select the descriptions of the input editions
editions select the names of all the TiddlyWiki editions
getvariable select all values of variables named in the input titles
modulesproperty retrieve a module property
modules select the names of all modules of the input module types
moduletypes select the names of all TiddlyWiki module types
plugintiddlers select all shadow titles in the input plugins
shadowsource select the plugin titles that contain the input shadows
storyviews select the names of all the story views
subtiddlerfields select all fields present in the selected tiddlers within a plugin
variables select the names of all the actively defined variables

La rédaction d'une étape typique s'écrit [opérateur[paramètre]], même si tous les opérateurs ne nécessitent pas de paramètre.

La plupart des étapes agissent sur les titres d'une sélection qu'ils ont en entrée, mais quelques uns construisent une sélection entièrement neuve à la place. Pour des règles précises, voir Syntaxe des filtres.

Filtres

 22 juin 2015 à 12h00

Vous pouvez vous représenter TiddlyWiki comme une base de données où tous les enregistrements sont des tiddlers. Une base de données propose typiquement un moyen de découvrir quels enregistrements satisfont à des critères donnés, avec TiddlyWiki c'est effectué par les filtres.

Un filtre est une notation notation concise pour sélectionner un ensemble de tiddlers particuliers, envoyé dans une output. Quand TiddlyWiki rencontre un filtre, il calcule l'output (la sortie). D'autres tâches peuvent être réalisées avec ces tiddlers, comme le dénombrement ou leur listage.

L'exemple qui suit envoie la sortie d'un filtre à la macro list-links pour afficher la liste des tiddlers qui commencent par la lettre H :

<<list-links "[prefix[H]]">>

La sortie d'un filtre peut changer selon que des tiddlers sont ajoutés ou supprimés du wiki. TiddlyWiki recalcule à la volée, actualisant automatiquement aussi bien les dénombrements basés sur des filtres que les listages.

La Recherche Avancée a un onglet Filtrer qui facilite l'expérimentation et l'apprentissage des filtres.

En savoir plus :

Premier

 20 juin 2015 à 18h23

C'est un exemple de tiddler. Voir Macros Table des matières (Exemples).

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

first Operator

 3 février 2015 à 19h19
purposeselect the first N input titles
inputa selection of titles
parameterN = an integer, defaulting to 1
outputthe first N input titles

Learn more about how to use Filters

first Operator (Examples)

 18 janvier 2015 à 18h32

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]first[]]

[list[Days of the Week]first[5]]

[tag[Filter Operators]!sort[title]first[]]

PremierUn

 20 juin 2015 à 18h25

C'est un exemple de tiddler. Voir Macros Table des matières (Exemples).

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

PremierTrois

 20 juin 2015 à 18h27

C'est un exemple de tiddler. Voir Macros Table des matières (Exemples).

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

PremierDeux

 20 juin 2015 à 18h26

C'est un exemple de tiddler. Voir Macros Table des matières (Exemples).

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

fixed Operator

 11 juin 2019 à 16h09
purposeconvert each number to fixed point notation with N digits after the decimal point
inputa selection of titles
parameterN = a number
outputthe input as numbers converted to fixed point notation with N digits after the decimal point

Learn more about how to use Filters

Depuis : 5.1.20 See Mathematics Operators for an overview.

The fixed operator returns a string representation of the input number that does not use exponential notation and has exactly the specified number of digits after the decimal place. The number is rounded if necessary, and the fractional part is padded with zeros if necessary so that it has the specified length.

Examples

fixed Operator (Examples)

 11 juin 2019 à 16h07

10.123456789 +[fixed[5]]

[[355]divide[113]fixed[7]]

[[1]divide[2]fixed[3]]

floor Operator

 13 juin 2019 à 9h44
purposerounds a list of numbers to the largest integer less than or equal to each number
inputa selection of titles
outputrounds each of the input numbers to the largest integer less than or equal to the given number

Learn more about how to use Filters

Depuis : 5.1.20 See Mathematics Operators for an overview.

Examples

floor Operator (Examples)

 13 juin 2019 à 9h45

[[1.6]floor[]]

[[-1.6]floor[]]

=-1.2 =-2.4 =3.6 =4.8 =5.1 +[floor[]]

format Operator

 11 juin 2022 à 11h47
purposeformat the input string according to one of supported formats
inputa selection of titles
suffixB = one of supported formats
parameterC = optional format string for the formats
outputinput strings formatted according to the specified suffix B

Learn more about how to use Filters

Depuis : 5.1.23

The suffix B is one of the following supported string formats:

FormatDescription
dateThe input string is interpreted as a UTC date and displayed according to the DateFormat specified in the optional operator operand. (Defaults to "YYYY MM DD 0hh:0mm")
json Depuis : 5.2.4 The input string is interpreted as JSON and displayed with standard formatting. The optional operator operand specifies the number of spaces to use for indenting, or a string to use for indenting. Nothing is returned if the input string is not valid JSON
relativedateThe input string is interpreted as a UTC date and displayed as the interval from the present instant. Any operator parameters are ignored
timestamp Depuis : 5.3.0 The input string is interpreted as number of milliseconds since the ECMAScript epoch, 1 January 1970, and displayed according to the DateFormat specified in the optional operator operand. (Defaults to "[UTC]YYYY0MM0DD0hh0mm0ss0XXX")
titlelist Depuis : 5.2.0 The input string wrapped in double square brackets if it contains a space. Appropriate for use in a title list.

Invalid input strings are dropped by the format operator.

The Title List format cannot reliably represent items that contain certain specific character sequences such as ]] . Thus it should not be used where there is a possibility of such sequences occurring.

Examples

format Operator (Examples)

 26 février 2023 à 13h56

These examples use the tiddler HelloThere.

Created date with no format string specified:

[[HelloThere]get[created]format:date[]]

Created date with a format string supplied as operator parameter:

[[HelloThere]get[created]format:date[DDth MMM YYYY]]

Modified date shown as a relative date:

[[HelloThere]get[modified]format:relativedate[]]

Get the date and time exactly 24 hours (86,400,000 milliseconds) from now:

[<now [UTC]YYYY0MM0DD0hh0mm0ss0XXX>format:date[TIMESTAMP]add[86400000]format:timestamp[DDth mmm YYYY 0hh:0mm:0ss]]

A tiddler title with spaces formatted as a title list:

[[Hello There]format:titlelist[]]

All tiddler titles tagged with formatted as a title list:

[tag[TableOfContents]format:titlelist[]]

A JSON string formatted as JSON – note how the JSON string is normalised to remove the duplicated properties:

[[{"one":"first","one":"another","two":"second"}]format:json[]]

To create a string to save a title list into a list field, use format:titlelist[] with the join operator

[tag[TableOfContents]format:titlelist[]join[ ]]

For example, to save titles tagged TableOfContents to the titles field of the tiddler format titlelist test:

<$button>Try it
<$action-setfield $tiddler="format titlelist test" titles={{{ [tag[TableOfContents]format:titlelist[]join[ ]] }}}/>
</$button>

Affichera ceci :

Mise en forme en WikiTexte

 21 avril 2022 à h49

Voici les formats de caractères disponibles en WikiTexte :

FormatRésultatIcône
`code`
``code contenant du `code` ``
code
code contenant du `code`
''gras''texte en gras
//italique//texte en italique
__souligné__texte souligné
~~barré~~texte barré
^^exposant^^texte en exposant
,,indice,,texte en indice

Voir aussi : Blocs de code en WikiTexte

Dans l'exemple de ``code contenant du `code` ``, notez qu'à la fin, l'espace entre le ` et les `` est obligatoire.

Formatting List Results as Tables (no CSS)

 20 décembre 2016 à 16h17

Sometimes you want the results of a <$list> widget to be formatted in the form of multiple columns instead of just one straight listing. The following method creates an actual table structure and uses the nth operator to provide break points for the rows. It is not responsive, that is, it doesn't re-position to display fewer columns if the window is too small.

In the first, outer list structure you must provide a count to indicate at item number rows should occur. So, in the following example, each row breaks after 4 items, so the sequence is 1,5,9, etc. Note that this requires you to know in advance the maximum number of items there will be. There is also an internal limit that is set to n-1 items, where n is the number of columns you want.

Note also that you need to repeat the driving filter operator inside of the internal <$list> widget. Obviously this technique lends itself to a macro implementation.

For other table-making techniques see also:

Example code for a four-column table with fewer than 70 items

<table>
<$list filter="1 5 9 13 17 21 25 29 33 37 41 45 49 53 57 61 65" variable ="rows">
    <$list filter="[tag[Filter Operators]limit[50]] +[nth<rows>]" variable="cell">
        <tr>
        <td> <<cell>> </td>
        <$list filter="[tag[Filter Operators]limit[50]] +[allafter<cell>limit[3]]" variable="this">
            <td> <<this>> </td>
        </$list>
        </tr>
    </$list>
</$list>
</table>

Result

abs Operator acos Operator add Operator addprefix Operator
addsuffix Operator after Operator all Operator allafter Operator
allbefore Operator append Operator applypatches Operator asin Operator
atan Operator atan2 Operator average Operator backlinks Operator
before Operator bf Operator butfirst Operator butlast Operator
ceil Operator charcode Operator commands Operator compare Operator
contains Operator cos Operator count Operator cycle Operator
days Operator decodebase64 Operator decodehtml Operator decodeuri Operator
decodeuricomponent Operator deserialize Operator deserializers Operator divide Operator
duplicateslugs Operator each Operator eachday Operator editiondescription Operator
editions Operator else Operator encodebase64 Operator encodehtml Operator
encodeuri Operator encodeuricomponent Operator enlist Operator enlist-input Operator
escapecss Operator escaperegexp Operator

Formatting List Results as Tables with CSS - Specified Columns Methods

 20 décembre 2016 à 16h16

Sometimes you want the results of a <$list> widget to be formatted in the form of multiple columns, instead of just one straight listing. This method uses ~CSS to set up listing as columns and assumes that you know how many columns you want. The method here is to create a style that reflects the number of columns you want your table to be in, and then apply that style to the resulting list output.

For other table-making techniques see also:

1) Create a tiddler for the columns tagged with $:/tags/Stylesheet, containing:

/* FOUR COLUMN MODE */
.fourcolumns {
   display:block;
   column-count:4;
   column-gap:1em;
   -moz-column-count:4;
   -moz-column-gap:1em;
   -webkit-column-count: 4;
   -webkit-column-gap:1em;
}

Note the various places you need to indicate the number of columns

2) Then format your output like this:

@@.fourcolumns
<$list filter="[tag[Filter Operators]]" variable="foo">
<<foo>><br>
</$list>
@@

Example showing partial list of filter operators

abs Operator
acos Operator
add Operator
addprefix Operator
addsuffix Operator
after Operator
all Operator
allafter Operator
allbefore Operator
append Operator
applypatches Operator
asin Operator
atan Operator
atan2 Operator
average Operator
backlinks Operator
before Operator
bf Operator
butfirst Operator
butlast Operator
ceil Operator
charcode Operator
commands Operator
compare Operator

Formatting List Results as Tables with CSS - Variable Column Method

 20 décembre 2016 à 16h28

Sometimes you want the results of a <$list> widget to be formatted in the form of multiple columns, instead of just one straight listing. This method uses CSS to set up listing as columns. It is responsive, that is, re-positioning to display fewer columns if the window is too small.

You don't directly specify a fixed number of columns but instead specify the max-width for the list (which could be a transclusion of the tiddler width) and the width for each item. It lists from left to right, then wraps to a new row.

For other table-making techniques see also:

Example listing using 50 existing TiddlyWiki tags

<div class="dynamic-table">
  <$list filter="[has[tags]tags[]sort[title]first[50]]">
    <span class="item">
      <$transclude tiddler="$:/core/ui/TagTemplate"/>
    </span>
  </$list>
</div>

Example stylesheet to use with listing

<style>
.dynamic-table {
  max-width:700px; /* could transclude tiddler width instead */
  -ms-box-orient: vertical; /* might be unnecessary */
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -moz-flex;
  display: -webkit-flex;
  display: inline-flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  flex-direction: row;
}

.item {
  max-width:160px; min-width:160px;
  flex: 0 0 2em; /* -grow, -shrink, -basis */
}
</style>

Results

Formater du texte dans TiddlyWiki

 3 décembre 2014 à 15h14

Au sein d'un tiddler, vous pouvez utiliser un formatage spécifique appelé WikiText, afin de contrôler la manière dont le texte sera affiché.

Formatage simple

Dans sa plus simple expression, WikiText vous permet d'appliquer des fonctions de traitement de texte familières comme le gras, l'italique, les listes et les tableaux. Par exemple :

Portez ce //vieux// whisky au ''juge'' ~~brun~~ blond qui `fume`

S'affiche ainsi :

Portez ce vieux whisky au juge brun blond qui fume

Travailler avec les tiddlers

WikiText vous permet de pointer vers d'autres tiddlers à l'aide des doubles crochets droits, ou grâce aux liens automatiques engendrés par les mots en CamelCase :

Voici un lien vers HelloThere, et un autre vers l'[[histoire de TiddlyWiki|History of TiddlyWiki]]

S'affiche comme :

Voici un lien vers HelloThere, et un autre vers l'histoire de TiddlyWiki

Macros

Les macros vous permettent d'assembler des bouts de WikiText répétitifs, afin de les réutiliser facilement.

Par exemple, voici la définition d'une macro qui génère une URL vidéo YouTube à partir de son identifiant unique :

\define youtube(video)
https://www.youtube.com/watch?v=$video$
\end

Une fois cette définition mise en place, <<youtube 1g66s7UbyuU>> génèrera l'URL https://www.youtube.com/watch?v=1g66s7UbyuU

WikiText avancé

Les fonctionnalités avancées de WikiText permettent de produire des listes automatisées et des fonctions interactives comme des menus déroulants. En fait, toute l'interface de TiddlyWiki est elle-même écrite en WikiText ; autrement dit, toutes les fonctionnalités que vous voyez dans TiddlyWiki peuvent être adaptées pour être utilisées dans vos propres wikis.

Certaines fonctionnalités avancées nécessitent un codage complexe. TiddlyWiki inclut plusieurs macros prédéfinies, qui simplifient les fonctions usuelles d'interface utilisateur, comme les onglets, les tables des matières, et les listes de tiddlers.

En savoir plus

Voir WikiText pour une introduction détaillée à l'écriture de WikiText.

Forum

 17 février 2022 à 17h47

Forum en français

La communauté francophone sur TiddlyWiki a son forum, venez contribuer !

https://forum.tiddlywiki.fr/

Forums officiels

Le nouveau forum officiel pour discuter de TiddlyWiki : demandes d'aide, annonces de nouvelles version et plugins, échanges sur les nouvelles fonctionnalités, ou simples partages d'expériences. Vous pouvez participer via le site web associé, ou souscrire par email.

https://talk.tiddlywiki.org/

Notez que talk.tiddlywiki.org est un service communautaire que nous hébergeons et maintenons nous-mêmes. Les modestes frais de mise à disposition du site sont couverts par les contributions de la communauté.

Pour le confort de la communauté, l'ancien groupe TiddlyWiki, hébergé sur Google Groups depuis 2005, reste fonctionnel.

https://groups.google.com/group/TiddlyWiki

Forums des développeurs

Plusieurs ressources permettent aux développeurs d'en apprendre plus sur TiddlyWiki, de collaborer et de discuter de son développement.

Autres forums

Documentation

Il existe un groupe de discussion spécialement dédié aux initiatives d'amélioration de la documentation : https://groups.google.com/group/tiddlywikidocs

Fourth

 14 novembre 2021 à 1h36

C'est un exemple de tiddler. Voir Macros Table des matières (Exemples).

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Friday

 16 novembre 2021 à 22h11

This example tiddler is used to illustrate some of the Filter Operators.

Édition complète

 2 juin 2016 à 6h55

L'édition « complète » de TiddlyWiki intègre toutes les langues, thèmes et plugins disponible de la distribution officielle de TiddlyWiki. Elle est destinée aux tests de TiddlyWiki — et notamment, pour basculer entre tous les plugins linguistiques disponibles.

L'édition complète peut être téléchargée via :

https://tiddlywiki.com/editions/full/

Full Text Search Plugin by Rob Hoelz

 6 janvier 2021 à 15h10

A plugin to integrate the popular lunr.js search engine, giving TiddlyWiki much more sophisticated search capabilities:

https://hoelz.ro/files/fts.html

Provides an alternative search result list that orders results by search relevance and ignores differences in word forms (ex. tag vs tags).

On my personal wiki, I have the problem that there are terms I use across a lot of tiddlers, and sometimes I'll use different forms (such as the aforementioned tag vs tags). I wanted a plugin to allow me to find the tiddler I'm looking for quickly and didn't require me to worry about how I declined a noun or inflected a verb - so I wrote this plugin, which provides an alternative search list powered by lunr.js.

function Operator

 19 avril 2023 à 11h31
purposeapply a function to the input list, and return the result
inputa selection of titles passed as input to the function F
parameterF = first parameter is the function name, subsequent parameters are passed to the function by position
outputthe selection of titles returned from the function F

Learn more about how to use Filters

Depuis : 5.3.0 The function operator applies a named function to the input titles, and returns the results from the function. The function is invoked once with all of the input titles (in contrast, the filter Operator invokes its function separately for each input title).

The first parameter of the function operator specifies the name of the function to be called. Subsequent parameters are passed to the function.

The mapping between the parameters is positional, with each consecutive parameter specified in the function call mapped to the corresponding parameter in the function definition. Any parameters that are not provided are given their default values.

Compare with the similar filter and subfilter operators which take a filter strings as their parameter instead of a named function, and does not permit parameters to be passed

Examples

Functions

 19 avril 2023 à 11h31

Introduction

Depuis : 5.3.0 A function is a named snippet of text containing a Filter Expression. Functions can have named parameters which are available within the function as variables.

Functions are usually defined with the Pragma: \function:

\function my-function(parameter:"2")
[<parameter>multiply[1.5]]
\end

Functions can be invoked in several ways:

  • Directly transclude functions with the syntax <<myfn param:"value">>
  • Assign functions to widget attributes with the syntax <div class=<<myfn param:"value">>>
  • Invoke functions via the function Operator with the syntax [function[myfn],[value],...]
  • Directly invoke functions whose names contain a period as custom filter operators with the syntax [my.fn[value]] or [.myfn[value]]

How Functions Work

Functions are implemented as a special kind of variable. The only thing that distinguishes them from ordinary variables is the way that the parameters are handled.

Funding TiddlyWiki

 4 décembre 2022 à 16h56

TiddlyWiki is more useful to everybody if it is free to use, with no financial barriers to long term adoption. It is not altruism; we believe that removing or reducing barriers to adoption will help to ensure TiddlyWiki's future by making the community larger and stronger.

Nonetheless, TiddlyWiki is a relatively big, complex machine that requires a significant amount of ongoing work to maintain and improve. Some community infrastructure also requires monthly fees to operate (notably the TiddlyWiki forum).

The people in the community that do the work have widely varying needs:

  • At one end, a good proportion of the work on TiddlyWiki is performed by community members on a purely voluntary basis. For those people, the satisfaction of helping others is sufficient reward. Indeed, for many people, unpaid voluntary activities are a satisfying antidote to everyday paid work
  • At the other extreme, JeremyRuston and some other contributors are trying to make a full-time living working on TiddlyWiki by offering commercial products and services around it
  • In between, there are other people who would appreciate an ocassional token to reward them for their work

To support these needs in the community, we have two initiatives:

  • We use Open Collective to collect donations for the infrastructure costs of the Community and to crowdfund specific developments by individuals or organisations
  • The TiddlyWiki Marketplace provides a shop window for individuals and organisations offering commercial products and services

Funding.png

 

L'avenir

 5 octobre 2014 à 19h15

À présent que TiddlyWiki5 a enfin quitté son statut de « beta », j'ai bon espoir qu'il vivra longtemps. Comme il n'utilise que des fonctionnalités standard de HTML5 et Node.js, il n'y a aucune raison pour qu'il ne reste pas entièrement opérationnel dans les années qui viennent. Mon but est qu'il survive au moins 25 ans.

Pérénité

 31 mai 2015 à 19h59

TiddlyWiki a été conçu avec le besoin à long terme des utilisateurs à l'esprit. Comme il est OpenSource et ne nécessite pas d'infrastructure, nous pouvons être sûrs que tout ce dont nous aurons besoin pour accéder à un fichier TiddlyWiki même dans un futur éloigné est un simple navigateur HTML. Si vous commencez à utiliser TiddlyWiki au début de votre carrière, vous pouvez être certain qu'il vous accompagnera jusqu'à la retraite.

Generating Static Sites with TiddlyWiki

 21 avril 2020 à 1h34

TiddlyWiki5 can be used to generate static HTML representations of a TiddlyWiki that doesn't need JavaScript. This process requires that TiddlyWiki be installed on Node.js on your local system. See Installing TiddlyWiki on Node.js for details.

There is much flexibility in how the static HTML is generated. The following scenarios are all illustrated on https://tiddlywiki.com.

Wiki Snapshots and Tiddler Snapshots

You can explore a static representation of the main TiddlyWiki site at https://tiddlywiki.com/static.html. That file is a static snapshot of the current DefaultTiddlers. Any tiddlers that it links to are referred to via URLs of the form /static/HelloThere.html that point to static snapshots of individual tiddlers. The tiddler HTML files reference a static.css stylesheet file.

The following commands are used to generate the sample static version of the TiddlyWiki5 site:

tiddlywiki wikipath --rendertiddlers '[!is[system]]' $:/core/templates/static.tiddler.html static text/plain
tiddlywiki wikipath --rendertiddler $:/core/templates/static.template.html static.html text/plain
tiddlywiki wikipath --rendertiddler $:/core/templates/static.template.css static/static.css text/plain

The first RenderTiddlersCommand generates the HTML representations of individual tiddlers, the second RenderTiddlerCommand saves the static version of the DefaultTiddlers, and the final RenderTiddlerCommand saves the stylesheet. (All the files are placed in the output folder of the wiki folder).

Wiki Snapshot with Internal Links

It is also possible to produce a single HTML file that contains static representations of tiddlers, and uses standard HTML anchor links to jump between them.

For example: https://tiddlywiki.com/alltiddlers.html

The example is built by the following commands:

--rendertiddler $:/core/templates/alltiddlers.template.html alltiddlers.html text/plain

GenesisWidget

 15 janvier 2023 à 10h18

Introduction

Depuis : 5.2.4 The $genesis widget allows the dynamic construction of another widget, where the name and attributes of the new widget can be dynamically determined, without needing to be known in advance.

Content and Attributes

The content of the $genesis widget is used as the content of the dynamically created widget.

AttributeDescription
$typeThe type of widget or element to create (an initial $ indicates a widget, otherwise an HTML element will be created)
$namesAn optional filter evaluating to the names of a list of attributes to be applied to the widget
$valuesAn optional filter evaluating to the values corresponding to the list of names specified in $names
$modeAn optional override of the parsing mode. May be "inline" or "block"
{other attributes starting with $}Other attributes starting with a single dollar sign are reserved for future use
{attributes starting with $$}Attributes starting with two dollar signs are applied as attributes to the output widget, but with the attribute name changed to use a single dollar sign
{attributes not starting with $}Any other attributes that do not start with a dollar are applied as attributes to the output widget or HTML Element

Depuis : 5.2.6 If the $type attribute is missing or blank, the $genesis widget does not render an intrinsic element, instead just rendering its children.

Note that attributes explicitly specified take precedence over attributes with the same name specified in the $names filter.

Examples

<$genesis $type="div" class="tc-thing" label="Squeak">Mouse</$genesis>

Affichera ceci :

Mouse

Code HTML correspondant :

<p><div class="tc-thing" label="Squeak">Mouse</div></p>

\define my-banner(mode:"inline",caption)
<$genesis $type={{{ [<__mode__>match[inline]then[span]else[div]] }}} class="tc-mybanner">
<<__caption__>>
</$genesis>
\end

<<my-banner caption:"I'm in a SPAN">>

<<my-banner mode:"block" caption:"I'm in a DIV">>

Affichera ceci :

I'm in a SPAN

I'm in a DIV

Code HTML correspondant :

<p><span class="tc-mybanner">
I'm in a SPAN
</span></p><p><div class="tc-mybanner">
I'm in a DIV
</div></p>

Important

In the following example the widget attribute named one is not present in the HTML output. This is because HTML attributes starting with the prefix on are removed for security reasons. See HTML in WikiText "Security" for more details. This restriction only affects generated HTML elements, and does not prevent the use of attributes prefixed on with other widgets

<$genesis $type="my-element" $names="one two" $values="1 2">Test Genesis Widget</$genesis>

Affichera ceci :

Test Genesis Widget

Code HTML correspondant :

<p><my-element two="2">Test Genesis Widget</my-element></p>

get Operator

 9 mars 2023 à 16h38
purposeselect all values of a field in the input titles
inputa selection of titles
parameterF = the name of a field
outputthe values of field F in each of the input titles

Learn more about how to use Filters

Each input title is processed in turn. If the corresponding tiddler contains field F, and the value of this field is not empty, then its value is appended to the output.

Unlike most other Filter Operators, the selection output by get can contain duplicates. To avoid duplicates, use get[F]unique[].

Examples

get Operator (Examples)

 25 mars 2023 à 16h34

[all[current]get[draft.of]]
→ the title of the tiddler of which the current tiddler is a draft

[get[tags]]
→ returns the tags of all tiddlers without de-duplication

[get[tags]unique[]]
→ returns the tags of all tiddlers with de-duplication

If a data tiddler contains a field with an empty value, the empty string is not appended to the results.

[all[current]get[myfield]]
→ the empty value of field myfield is not returned by the get operator

[all[current]has:field[myfield]] :map[get[myfield]]
→ also returns the empty string

The above example works by first checking if the input title has the field myfield and then using the Map Filter Run Prefix to replace the title with their value of that field. If the input tiddler does not have the field, an empty selection is returned. The subsequent Map Filter Run Prefix outputs an empty string when its run returns an empty selection (because the field is empty).

[all[tiddlers]] :filter[get[created]compare:date:lt{HelloThere!!created}]
→ return all tiddlers that are older than HelloThere

The above example demonstrates two different ways of accessing field values in filters: Use get when the title is not known in advance as with the Filter Filter Run Prefix where currentTiddler is set to the current input title. Use a TextReference as an indirect Filter Parameter when the title is known.

Ramener l'Anneau

 19 novembre 2014 à 22h55

Il s'agit de l'une des tâches pour l'exemple de gestion de tâches

getindex Operator

 9 mars 2023 à 16h38
purposeselect all values of a data property in the input titles
inputa selection of titles
parameterP = the name of a property
outputthe values of property P in each of the input titles

Learn more about how to use Filters

Each input title is processed in turn, and is ignored if it does not denote a data tiddler. If the corresponding tiddler contains property P, and the value of this property is not empty, then its value is appended to the output.

Unlike most other Filter Operators, the selection output by getindex can contain duplicates. To avoid duplicates, use getindex[P]unique[].

Examples

getindex Operator (Examples)

 25 mars 2023 à 16h35

[[$:/palettes/Vanilla]getindex[background]]
→ returns the value of property background of the DataTiddler $:/palettes/Vanilla

[all[shadows+tiddlers]tag[$:/tags/Palette]getindex[background]]
→ returns all background colors defined in any of the ColourPalettes (notice the duplicates in the resulting list)

If a data tiddler contains a property with an empty value, the empty string is not appended to the results.

[[ListopsData]getindex[DataIndex]]
→ the empty value of the property DataIndex in ListopsData is not returned by the getindex operator

[[ListopsData]has:index[DataIndex]] :map[getindex[DataIndex]]
→ also returns the empty string

The above example works by first checking if the input title has the property DataIndex and then using the Map Filter Run Prefix to replace the title with their value of that property. If the input tiddler does not have the property, an empty selection is returned. The subsequent Map Filter Run Prefix outputs an empty string when its run returns an empty selection (because the property is empty).

[[$:/palettes/Vanilla]indexes[]] :filter[[$:/palettes/Vanilla]getindex<currentTiddler>count[]compare:number:eq[0]]
→ returns those colors in $:/palettes/Vanilla which are defined, but have no value assigned

In the above example, count is used to check if getindex returns a result (i.e. the corresponding property has a value) or not.

Bien démarrer en vidéo

 30 octobre 2014 à 10h04

Ce rapide tutoriel vous explique brièvement comment enregistrer vos modifications avec un fichier TiddlyWiki autonome.

Notez que cette vidéo est un peu ancienne, et qu'elle sera mise à jour bientôt !

La mise en route

 17 février 2022 à 17h51

Téléchargez un TiddlyWiki vide en cliquant sur ce bouton :

L'étape suivante consiste à choisir une solution d'enregistrement des modifications. De nombreuses méthodes sont disponibles, chacune avec ses atouts et ses limites. Cliquez sur la fiche d'une méthode pour voir plus d'informations la concernant. Vous pouvez aussi cocher une case de plateformes et de navigateur pour afficher les solutions qui fonctionnent pour cette combinaison.

N'utilisez pas le menu Fichier/Enregistrer du navigateur internet pour enregistrer vos modifications (ça ne marche pas) !


Méthodes disponibles pour enregistrer les modifications avec TiddlyWiki :

Plateforme





Navigateur internet






Autres informations :

Bien démarrer — Android

 28 septembre 2014 à 14h02

Deux options s'offrent à vous pour utiliser TiddlyWiki sur Android :

Firefox et TiddlyFox

(Vous pouvez aussi regarder le tutoriel vidéo).

  1. Assurez-vous d'avoir installé la dernière version de Firefox pour Android
  2. Installez la dernière version de l'extension TiddlyFox depuis :
  3. Installez aussi cette extension qui vous permettra de sauvegarder le fichier TiddlyWiki localement :
  4. Téléchargez un fichier TiddlyWiki vide en enregistrant ce lien :
    (pour enregistrer le lien, assurez-vous d'avoir installé l'extension "save-link-menus", appuyez quelques secondes sur le lien, puis choisissez "Save link")
  5. Une fois le fichier téléchargé, cliquez dessus depuis la zone de notification ou l'application de gestion des téléchargements
  6. Choisissez d'ouvrir le fichier avec Firefox (et non l'application par défaut proposée par Android)
  7. Cliquez OK en réponse à la demande de TiddlyFox qui vous demande s'il faut activer l'enregistrement pour ce fichier
  8. Essayez de créer un nouveau tiddler à l'aide du bouton nouveau tiddler de la barre latérale. Ajouter du contenu dans le tiddler, et cliquez sur le bouton terminé
  9. Enregistrez vos modifications en cliquant sur le bouton enregistrer les modifications de la barre latérale
    • Attendez l'indication jaune Wiki enregistré en haut à droite de la fenêtre
  10. Rafraîchissez la fenêtre du navigateur pour vérifier que vos modifications ont été correctement enregistrées

L'application AndTidWiki

Les applications Tiddloid et Tiddloid Lite sont des applis Android qui permettent d'éditer des wikis et d'enregistrer les changements au format HTML de TiddlyWiki.

Fonctionnalités

  • Créez des nouveaux wikis à partir de la dernière version de TiddlyWiki publiée sur internet
  • Importez des TiddlyWiki existants stockés sur la mémoire interne de l'appareil. (TiddloidLite permet aussi le stockage sur carte SD externe)
  • Copiez et personnalisez des TiddlyWiki intéressants à partir d'internet (fonctionne avec TW5 uniquement)
  • Détection de TiddlyWiki
  • Les TiddlyWiki stockés localement sont mis à jour en même temps que l'enregistrement des modifications dans les TiddlyWiki importés dans l'appli.
  • Système de sauvegarde compatible avec celui de TiddlyDesktop
  • Raccourcis vers vos wikis sur la page d'accueil d'Android
  • TiddloidLite est compatible avec le stockage en nuage comme GDrive ou OneDrive.

Notes

  • Tiddloid Lite fonctionne mieux sur les appareils munis d'Android Q ou ultérieur. Il permet aussi le stockage en nuage dans GDrive ou OneDrive, alors que Tiddloid conserve la compatibilité avec TiddlyWiki Classic. Pour en apprendre plus sur les différences entre Tiddloid et Tiddloid Lite, consultez la page d'accueil de Tiddloid.
  • Pour que l'importation fonctionne correctement, conservez l'extension .html ou .htm de vos fichiers TiddlyWiki.

Bien démarrer — Chrome

 28 septembre 2014 à 18h00

Sous Google Chrome, TiddlyWiki ne parvient à sauvegarder les modifications qu'à l'aide de la solution de repli standard : le module de sauvegarde compatible HTML5.

Cette manière d'enregistrer les modifications est assez pénible, car elle requiert une intervention manuelle à chaque enregistrement. Elle a l'avantage de fonctionner avec pratiquement tous les navigateurs tournant sur les ordinateurs de bureaux, et de nombreux navigateurs tournant sur appareils mobiles.

  1. Téléchargez un TiddlyWiki en cliquant sur ce bouton :
    Si le bouton ne fonctionne pas, enregistrez ce lien : https://tiddlywiki.com/languages/fr-FR/empty.html
    Votre navigateur vous demandera peut-être d'accepter explicitement l'enregistrement avant qu'il démarre
  2. Localisez le fichier que vous venez de télécharger
    • Vous pouvez le renommer, mais assurez-vous de conserver l'extension .html ou .htm
  3. Ouvrez le fichier dans votre navigateur
  4. Essayez de créer un nouveau tiddler à l'aide du bouton nouveau tiddler de la barre latérale. Ajouter du contenu dans le tiddler, et cliquez sur le bouton terminé
  5. Enregistrez vos modifications en cliquant sur le bouton enregistrer les modifications de la barre latérale
  6. Votre navigateur téléchargera alors un nouvel exemplaire du wiki, avec vos modifications à l'intérieur
  7. Localisez ce nouveau fichier et ouvrez-le dans votre navigateur
  8. Vérifiez que vos modifications ont correctement été enregistrées

Truc: la plupart des navigateurs peuvent être configurés pour proposer un chemin d'enregistrement à chaque téléchargement. Cela vous permet de sélectionner la version précédente du fichier et ainsi de la remplacer.

Bien démarrer — Firefox

 28 septembre 2014 à 14h16

C'est Firefox qui fournit la meilleure expérience d'utilisation de TiddlyWiki, grâce à l'extension TiddlyFox.

Si vous utilisez Firefox pour Android, reportez-vous aux instructions pour enregistrer avec TiddlyFox sur Android.

  1. Assurez-vous d'avoir une version de Firefox antérieure à 57. TiddlyFox ne fonctionne plus sur les versions 57 et ultérieures. Pour Firefox 57 et au-delà, pensez plutôt à utiliser :
  2. Installez la dernière version de l'extension TiddlyFox à partir de :
  3. Redémarrez Firefox
  4. Téléchargez un TiddlyWiki vide en cliquant sur ce bouton :
  5. Localisez le fichier que vous venez de télécharger
    • Vous pouvez le renommer, mais assurez-vous de conserver l'extension .html ou .htm
  6. Ouvrez le fichier dans Firefox
    • Si vous utilisez TiddlyFox v1.x.x, cliquez OK en réponse à la demande de TiddlyFox d'activer l'enregistrement pour ce fichier
    • Si vous utilisez TiddlyFox v2.x.x cliquez sur l’icône de chat sur un globe bleu pour activer l'enregistrement. Il n'y a pas de demande en v2.0.1.
      • Pour TiddlyFox v2.0.1, vous ne pouvez pas utiliser le mode Navigation Privée, ni activer l'option « Ne jamais conserver l'historique ».
  7. Essayez de créer un nouveau tiddler à l'aide du bouton nouveau tiddler de la barre latérale. Ajouter du contenu dans le tiddler, et cliquez sur le bouton terminé
  8. Enregistrez vos modifications en cliquant sur le bouton enregistrer les modifications de la barre latérale
    • Attendez l'indication jaune Wiki enregistré en haut à droite de la fenêtre
  9. Rafraîchissez la fenêtre du navigateur pour vérifier que vos modifications ont été correctement enregistrées

Mise en route - Internet Explorer

 11 avril 2022 à 16h48
  1. Installez l'extension TiddlyIE depuis :
  2. Redémarrez Internet Explorer. IE vous demandera si vous voulez activer l'extension TiddlyIE.
    Il se peut aussi que vous ayez à activer le Microsoft Scripting Runtime
  3. Téléchargez un TiddlyWiki vide en enregistrant ce lien :
  4. Localisez le fichier que vous venez de télécharger
    • Vous pouvez le renommer, mais assurez-vous de conserver l'extension .html ou .htm
  5. Ouvrez le fichier dans Internet Explorer
  6. Essayez de créer un nouveau tiddler à l'aide du bouton nouveau tiddler de la barre latérale. Ajouter du contenu dans le tiddler, et cliquez sur le bouton terminé
  7. Enregistrez vos modifications en cliquant sur le bouton enregistrer les modifications de la barre latérale. Internet Explorer vous demandera votre assentiment pour enregistrer le fichier localement en vous présentant un dialogue Enregistrer sous....
  8. Rafraîchissez la fenêtre du navigateur pour vérifier que vos modifications ont été correctement sauvegardées.

Le hack Windows HTA décrit une autre manière d'utiliser TiddlyWiki avec Internet Explorer.

Bien démarrer — iOS

 11 août 2014 à 18h09

L'application Quine 2 pour iPad/iPhone permet d'éditer et d'enregistrer les modifications de wikis TiddlyWiki5 sur iOS. Vous pouvez la télécharger ici.

Instructions d'utilisation :

  1. Ouvrez Quine 2
  2. Tapez sur le bouton + de la barre d'outils pour créer et ouvrir un nouveau TiddlyWiki
  3. Dans la liste des fichiers tapez sur un fichier TiddlyWiki existant pour l'ouvrir
  4. Éditez le TiddlyWiki comme d'habitude, et enregistrez-le normalement avec Autosave ou le bouton enregistrer
  5. Utilisez le bouton de barre d'outil Documents à gauche pour fermer un TiddlyWiki ouvert
  • Quine 2 fonctionne nativement sous iOS avec des fichiers locaux ou stockés dans iCloud
  • Quine 2 permet aussi d'ouvrir, modifier et enregistrer des fichiers TiddlyWiki stockés chez d'autres fournisseurs de service Cloud
  • Quine 2 permet de suivre des liens Wikitexte embarqués ou des liens canoniques externes vers des fichiers accessibles comme sur le Cloud via des services compatibles avec le folder level sharing
    • Parmi les applications compatibles, citons Secure Shellfish et Working Copy. La plupart des services ne permet toutefois pas aux applis comme Quine 2 d'utiliser ce type de liens
    • Si vous voulez activer cette fonctionnalité pour les services « collaboratifs », basculez le commutateur Autoriser la sélection de dossiers pour les liens hors bac-à-sable dans les paramètres iOS de Quine 2

Notez que Quine 2 est publié indépendamment de TiddlyWiki

Bien démarrer — Node.js

 11 août 2014 à 18h20
  1. Installez Node.js
    • Linux
      Debian/Ubuntu :
      apt install node.js
      Et éventuellement :
      apt install npm
      Arch Linux
      pacman -S tiddlywiki
      (installe node et tiddlywiki)
    • Mac
      brew install node
    • Android
    • Autres
  2. Ouvrez un terminal de ligne de commande et saisissez :
    npm install -g tiddlywiki
    En cas d'erreur, il faudra peut-être relancer la commande en tant qu'administrateur :
    sudo npm install -g tiddlywiki (Mac/Linux)
  3. Vérifiez que TiddlyWiki est bien installé en tapant :
    tiddlywiki --version
  4. En réponse, vous devriez voir TiddlyWiki renvoyer la version en cours (par exemple 5.3.2-prerelease ; d'autres informations de débogage peuvent aussi apparaître).
  5. Faites l'essai :
    1. tiddlywiki monnouveauwiki --init server pour créer un dossier pour un nouveau wiki qui inclura des composants orientés serveur
    2. tiddlywiki monnouveauwiki --listen pour démarrer TiddlyWiki
    3. Positionnez votre navigateur sur l'adresse http://127.0.0.1:8080/
    4. Essayez d'éditer et de créer de nouveaux tiddlers
  6. Eventuellement, créez une copie hors-ligne :
    • Cliquez sur le bouton Enregistrer les modifications de la barre latérale, OU
    • tiddlywiki monnouveauwiki --build index

L'option -g demande à Node.js d'installer TiddlyWiki globalement. Sans elle, TiddlyWiki sera disponible seulement dans le répertoire où vous l'avez installé.

Si vous utilisez Debian ou une distribution Linux dérivée de Debian et que vous recevez une erreur node: command not found alors que le paquet node.js est installé, vous devrez peut-être créer un lien symbolique entre nodejs et node. Consultez le manuel de votre distribution et de whereis pour créer un lien correctement. Voir le rapport d'erreur 1434 sur github.

Exemple pour Debian 8.0 : sudo ln -s /usr/bin/nodejs /usr/bin/node

Vous pouvez aussi installer d'anciennes versions de TiddlyWiki ainsi :

npm install -g tiddlywiki@5.1.13

GettingStarted - Online

 14 novembre 2021 à 3h16

TiddlyWiki can also be hosted on online services such as Dropbox and Cloudant.

Dropbox (syncs the entire HTML file)
To edit files stored in your Dropbox, go to http://tiny.cc/tw5inthesky/. This will allow you to open any HTML files found.
Cloudant (or another CouchDB-type server) (syncs individual tiddlers)
http://noteself.github.io/

Mise en route - Safari

 11 avril 2022 à 16h42

Sous Safari, TiddlyWiki ne parvient à sauvegarder les modifications qu'à l'aide de la solution de repli standard : le module de sauvegarde compatible HTML5.

getvariable Operator

 30 mars 2019 à 10h01
purposeselect all values of variables named in the input titles
inputa selection of variable names
parameterignored
outputthe values of each of the variables named in the input titles (or blank if the variable is not defined)

Learn more about how to use Filters

Depuis : 5.1.20 The usual way to retrieve a variable value within a filter is with the angle brackets notation. For example, [<currentTiddler>] will retrieve the value of the variable called currentTiddler.

The getvariable filter operator provides an alternative way to retrieve a variable. For example, [[currentTiddler]getvariable[]] is another way to retrieve the value of the variable currentTiddler.

The advantage of getvariable is that it makes it possible to work with variables whose name is computed, and not known in advance. For example, [<myvariable>getvariable[]] gets the value of the variable whose name is given in the variable myvariable.

Examples

getvariable Operator (Examples)

 30 mars 2019 à 10h01

[[currentTiddler]getvariable[]]
→ returns the value of the variable currentTiddler

Git

 23 juillet 2023 à 8h30
Git (/ɡɪt/) is a distributed version control system that tracks changes in any set of computer files, usually used for coordinating work among programmers collaboratively developing source code during software development. Its goals include speed, data integrity, and support for distributed, non-linear workflows (thousands of parallel branches running on different computers).
https://en.wikipedia.org/wiki/Git

GitHub

 23 juin 2015 à 8h32

GitHub est une société qui propose un service d'hébergement de code incluant des fonctions collaboratives puissantes.

Le code et la documentation de TiddlyWiki est hébergé sur GitHub à l'adresse :

https://github.com/Jermolene/TiddlyWiki5

GitHub Saver Tutorial by Mohammad

 23 juillet 2023 à 8h45

GitHub Saver is a step by step tutorial that shows how to integrate Tiddlywiki 5 and GitHub Pages to create websites hosted on https://github.com/.

https://kookma.github.io/TW5-GitHub-Saver/

This instruction is based on Tiddlywiki single html file model, while it can use subfolder for extra materials like images, audios, videos, pdfs,... in separate folders.

Other tutorials

Tiddlywiki, Travis-CI and GitHub Pages
https://kookma.github.io/Tiddlywiki-Travis-CI/
This wiki shows how to set up websites hosted on GitHub Pages using Travis-CI and Tiddlywiki 5 on Node.js.
Tiddlywiki and GitHub Pages
https://kookma.github.io/Tiddlywiki-and-GitHub-Pages/
This instruction is based on local edit, save and push to GitHub. It does NOT use the new GitHub Saver mechanism (requires TW 5.1.20+) which lets edit and save directly from Tiddlywiki!

GitLab

 23 juillet 2023 à 8h39
GitLab Inc. is an open-core company that operates GitLab, a DevOps software package which can develop, secure, and operate software. The open source software project was created by Ukrainian developer Dmytro Zaporozhets and Dutch developer Sytse Sijbrandij
https://en.wikipedia.org/wiki/GitLab

Both GitLab and GitHub use Git a distributed version control system, that can be used to store, view and edit TiddlyWiki wikis using GitLab Pages

Learn more at: Saving to a Git service

Glossaire en-GB -> fr-FR

 2 avril 2022 à 11h58
en-GBfr-FRCommentaire
addedajouté
backgroundarrière plan
bugbogue
corenoyau
dominant appendajout prépondérantajouté par prépondérance
draftébauche
empty éditionédition basique
encryptioncryptage
filter runséquence de filtre
fixedcorrigé
flexiblesouplemaléable
improvedamélioré
introduceintègrerex (eng) : Introduce plugin
keywordmotclé
layoutmise en page
lazy loadingtéléconsigne
no *sauf *hormis *
non-linear3D ?
placeholderzoneréservée
pull requestproposer une contribution
runséquence
SafeModeModeSansÉchecModeSecours ?
SandBoxBacàSable=> ZoneBrouillon/Protégée ?
sequencesuite /série
a setun ensemble
shadowshadow(ombre, *latent*, fantôme ?)
single file wikiwiki mono-fichier
snippetportion
stepétape
story riverdéroulé
taggingétiquet(er/age)tag=> tag/étiquette
templategabarit
tweakrégl(er/age)
upgrademettre à niveauactualiser/Obtenir la dernière version
viewvisualisationabr. : 'Visu'
WhitespaceEspacevierge
widgetwidget

AVERTISSEMENT - Mots et références réservés pour le système :

  • Les noms de champ et leurs références (nom du champ sans séparateur suivi de Field, ex : ListField)
  • Les noms des widgets, ex : NavigatorWidget

Aller à Mordor

 19 novembre 2014 à 23h00

Il s'agit de l'une des tâches pour l'exemple de gestion de tâches

Grok TiddlyWiki Banner

 

Listes groupées

 19 juin 2015 à 16h11

Les onglets suivants du menu latéral offrent un exemple de listes groupées créées par imbrication.

Option 'types' (de l'onglet plus)

Pour l'option Types, la sortie de liste filtrée sélectionne chaque valeur trouvée dans le champ type, comme exposé çi-dessous. Le filtre d'entrée filtre les tiddlers (non-système) de ce type.

\whitespace trim
<$list filter={{$:/core/Filters/TypedTiddlers!!filter}}>
<div class="tc-menu-list-item">
<$view field="type"/>
<$list filter="[type{!!type}!is[system]sort[title]]">
<div class="tc-menu-list-subitem">
<$link to={{!!title}}><$view field="title"/></$link>
</div>
</$list>
</div>
</$list>

Onglet 'récent'

Dans l'onglet Récent la liste est générée en utilisant la macro timeline. Ici, la sortie de liste filtre chaque jour trouvé dans le champ modifié, tandis que l'entrée de liste filtre tous les tiddlers datés du même jour dans le champ modifié.

$:/core/macros/timeline :

<!-- Override one or both of the following two macros with a global or local macro of the same name 
if you need to change how titles are displayed on a timeline -->

\define timeline-title() <$view field="title"/>
\define timeline-link() <$link to={{!!title}}><<timeline-title>></$link>
\define timeline(limit:"100",format:"DDth MMM YYYY",subfilter:"",dateField:"modified")
\whitespace trim
<div class="tc-timeline">
<$list filter="[!is[system]$subfilter$has[$dateField$]!sort[$dateField$]limit[$limit$]eachday[$dateField$]]">
<div class="tc-menu-list-item">
<$view field="$dateField$" format="date" template="$format$"/>
<$list filter="[sameday:$dateField${!!$dateField$}!is[system]$subfilter$!sort[$dateField$]]">
<div class="tc-menu-list-subitem">
<<timeline-link>>
</div>
</$list>
</div>
</$list>
</div>
\end

Croissance de <<tw>>

 24 septembre 2014 à 11h01

Une étape majeure dans la croissance de TiddlyWiki fut la création de GTDTiddlyWiki par Nathan Bowers. Il partit du TiddlyWiki de base et l'adapta spécifiquement pour la gestion et le suivi de tâches à l'aide de la méthodologie bien connue Getting Things Done. GTDTiddlyWiki fut un succès immédiat, salué avec enthousiasme par des sites comme LifeHacker.

Dans les années qui suivirent, TiddlyWiki continua à croître en popularité, et s'enrichit de nouvelles fonctions et possibilités. En un an, je pus trouver une indépendance financière en proposant du développement sur mesure autour de TiddlyWiki, notamment en travaillant avec un pionnier du wiki, SocialText, sur la possibilité de synchroniser des modifications avec un serveur en ligne.

GuerillaWiki

 17 août 2014 à 15h10

TiddlyWiki makes a great GuerillaWiki in situations where it is not practical to use a traditional wiki.

For instance, in a corporate setting, persuading an over-worked IT department to install a Wiki server for you is seldom going to be possible overnight. And if your PC is locked down you can't install a conventional Wiki yourself. Equally, you can't go and use one of the public hosted Wiki services because your Information Security department would not allow all that corporate data to flow into an outside server.

TiddlyWiki slices through those barriers by being usable on virtually all PCs.

Hamlet

 4 mars 2023 à 16h21
{
    "Shakespeare-old": "Hamlet: Do you see yonder cloud that's almost in shape of a camel?\nPolonius: By the mass, and 'tis like a camel, indeed.\nHamlet: Methinks it is like a weasel.\nPolonius: It is backed like a weasel.\nHamlet: Or like a whale?\nPolonius: Very like a whale.\n-- Shakespeare",
    "Shakespeare-new": "Hamlet: Do you see the cloud over there that's almost the shape of a camel?\nPolonius: By golly, it is like a camel, indeed.\nHamlet: I think it looks like a weasel.\nPolonius: It is shaped like a weasel.\nHamlet: Or like a whale?\nPolonius: It's totally like a whale.\n-- Shakespeare",
    "Trekkie-old": "Kirk: Do you see yonder cloud that's almost in shape of a Klingon?\nSpock: By the mass, and 'tis like a Klingon, indeed.\nKirk: Methinks it is like a Vulcan.\nSpock: It is backed like a Vulcan.\nKirk: Or like a Romulan?\nSpock: Very like a Romulan.\n-- Trekkie"
}

Liens durs et souples

 22 juin 2015 à 11h57

Un lien dur peut être détecté par un examen superficiel du WikiText.

Un lien est souple s'il est :

  • contenu dans un texte tranclus de quelque part
  • fourni par une macro ou une variable
  • généré par le lien d'un widget dont l'attribut to est une transclusion, est une macro ou une variable

les liens souples ne sont pas détectés par les opérateurs de filtre link-related tels que backlinks, links, all and is.

Fins de lignes forcées en WikiTexte

 22 avril 2022 à 2h05

Le traitement habituel des paragraphes en WikiTexte implique que les retours à la ligne simples sont ignorés, tandis que deux retours à la ligne sont interprétés comme la fin d'un paragraphe.

Ce comportement n'est pas pratique pour du texte qui intègre des retours à la ligne – par exemple, pour de la poésie.

Syntaxe en bloc

Un bloc de contenu délimité par trois caractères "guillemets doubles" """ permet d'indiquer que les fins de ligne doivent y être forcées :

"""
Ceci est une ligne
et ceci est une nouvelle ligne
tandis que cela est encore une autre ligne
et ceci est la dernière

excepté celle-ci
"""

Affichera ceci :

Ceci est une ligne
et ceci est une nouvelle ligne
tandis que cela est encore une autre ligne
et ceci est la dernière

excepté celle-ci

Remarque
  • Contrairement à d'autres syntaxes en bloc, celle-ci ne requière pas que ses marqueurs soient seuls sur une ligne : ils pourraient être placés n'importe où, même au milieu du texte.

Syntaxe HTML

Les fins de lignes ne devraient pas être forcées dans un texte courant, car cela peut déformer l'affichage sur des terminaux mobiles.

Cependant, dans des cas exceptionnels, la balise HTML <br> peut être utilisée pour revenir à la ligne sans créer de nouveau paragraphe :

Ceci est une première ligne.<br>
Ceci est une deuxième ligne.<br>Et cela est une troisième ligne.

Affichera ceci :

Ceci est une première ligne.
Ceci est une deuxième ligne.
Et cela est une troisième ligne.

Remarque
  • Plusieurs <br> d'affilée permettent de créer artificiellement un espacement de plusieurs lignes.

Hard Linebreaks with CSS

 26 janvier 2017 à 21h10

Since TiddlyWiki Version 5.1.16, it's possible to apply customs styles with data- attributes. see: How to apply custom styles

The Custom data-styles stylesheet tiddler contains the following definition:

[data-tags*="example-hardlinebreaks"] .tc-tiddler-body {
  word-break: normal; 
  word-wrap: break-word;
  white-space: pre-wrap;
}

If rendered without the tag, the content of "Hard Linebreaks with CSS - Example" will be shown like this:

The following text is rendered without any special WikiText syntax. So most of the WikiText functionality will be accessible. This is a line and this is a new line while this is yet another line and this is the final one apart from this one

Open the tiddler to see the custom CSS rules applied: Hard Linebreaks with CSS - Example

Hard Linebreaks with CSS - Example

 26 janvier 2017 à 21h10

The following text is rendered without any special WikiText syntax. So most of the WikiText functionality will be accessible.

This is a line and this is a new line while this is yet another line and this is the final one apart from this one

has Operator

 6 mars 2023 à 14h32
purposefilter the input by field existence
inputa selection of titles
suffixS = Depuis : 5.1.14 optionally, the keyword field or Depuis : 5.1.22 optionally, the keyword index
parameterF = the name of a field or, optionally an index
outputwithout suffix
» those input tiddlers in which field F has a non-empty value
suffix field
» those input tiddlers in which field F exists
suffix index
» those input data tiddlers in which index F exists
! outputwithout suffix
» those input tiddlers in which field F does not exist or has an empty value
suffix field
» those input tiddlers in which field F does not exist
suffix index
» those input data tiddlers in which index F does not exist

Learn more about how to use Filters

has Operator (Examples)

 11 novembre 2015 à 15h02

[has[color]]

[tag[Concepts]!has[modified]]

[has:field[emptyfield]]

[all[current]!has:field[doesntexist]]

[all[tiddlers+shadows]has:index[foreground]]

[all[current]!has:index[doesntexist]]

haschanged Operator

 8 février 2015 à 19h18
purposefilter the input by tiddler modification status
inputa selection of titles
parameternone
outputthose input tiddlers that have been modified during this session
! outputthose input tiddlers that have not been modified during this session

Learn more about how to use Filters

A tiddler is deemed to have been modified if it has been written back to the wiki since the start of the current TiddlyWiki session. If you edit a tiddler and immediately store it again without making any changes, that is enough to mark it as modified.

Examples

Titres de rubriques en WikiTexte

 22 avril 2022 à 2h07

Un titre de rubrique est codé par un à 6 caractères « point d'exclamation » ! au début d'une ligne :

! Titre de niveau 1
!! Titre de niveau 2
!!! Titre de niveau 3
!!!! Titre de niveau 4
!!!!! Titre de niveau 5
!!!!!! Titre de niveau 6

Affichera ceci :

Titre de niveau 1

Titre de niveau 2

Titre de niveau 3

Titre de niveau 4

Titre de niveau 5
Titre de niveau 6

Des styles et des classes CSS peuvent être assignés individuellement aux titres :

!! Titre
!!@@background-color:#00ffff; Titre stylisé@@
!!.monStyle Titre stylisé avec une classe

Affichera ceci :

Titre

Titre stylisé

Titre stylisé avec une classe

Height of text editor

 17 août 2016 à 11h54

The button let you adjust the height of the text input field.

Bienvenue !

 17 février 2022 à 17h48

N'avez-vous jamais eu la sensation que votre tête était trop petite pour contenir tout ce que vous avez besoin de mémoriser ?

Bienvenue sur TiddlyWiki, un carnet de notes web non-linéaire pour saisir, organiser et partager des informations simples ou complexes.

Utilisez-le pour gérer votre liste de tâches, faire le plan d'un essai ou d'une nouvelle, ou pour organiser votre mariage. Enregistrez tout ce qui vous traverse l'esprit, ou construisez un site web flexible et réactif.

TiddlyWiki Newsletter
Introduction à TiddlyWiki
Grok TiddlyWiki
Quoi de neuf dans 5.3.2-prerelease
links.tiddlywiki.org
Développeurs
How is TiddlyWiki Funded?
TiddlyWiki Marketplace
Federatial
TiddlyWiki Classique
Un mini-guide
Aider TiddlyWiki

Contrairement aux services en ligne classiques, TiddlyWiki vous permet de choisir où conserver vos informations, et garantit que, dans les décennies à venir, vous pourrez toujours utiliser les notes que vous prenez aujourd'hui.

TalkTW YouTube Twitter GitHub Gitter

HelloThumbnail

 14 avril 2015 à 8h09

BonjourLaVignette - Classique

 3 juin 2016 à 13h42

BonjourLaVignette - Développeurs

 3 juin 2016 à 13h39

HelloThumbnail - Federatial

 

Support the development of TiddlyWiki by hiring Jeremy Ruston through Federatial Limited

HelloThumbnail - Funding

 

Find out how you can help support TiddlyWiki financially

BonjourLaVignette - Mini-guide

 3 juin 2016 à 13h37

HelloThumbnail - Grok TiddlyWiki

 

Everything you need to know to get the best out of TiddlyWiki

BonjourLaVignette - AiderTiddlyWiki

 3 juin 2016 à 13h38

BonjourLaVignette - Introduction Vidéo

 3 juin 2016 à 13h35

BonjourLaVignette - Dernière Version

 3 juin 2016 à 13h41

HelloThumbnail - Marketplace

 

Explore commercial products and services for TiddlyWiki

HelloThumbnail - Newsletter

 

Subscribe to the TiddlyWiki Newsletter, a fortnightly summary of the most interesting and relevant news from the TiddlyWiki community

HelloThumbnail - TiddlyWikiLinks

 

Links to TiddlyWiki-related content collected by the community

HelpCommand

 25 février 2014 à 19h57

Affiche un texte d'aide sur une commande particulière :

--help [<commande>]

Si aucun nom de commande n'est fourni, affiche la liste de toutes les commandes disponibles.

AiderTiddlyWiki

 6 juin 2016 à 11h24

Si vous appréciez l'utilité de TiddlyWiki, il y a plusieurs façons d'aider à l'améliorer et à assurer son avenir.

Former et Promouvoir

Les Projets OpenSource comme << tw >> prospèrent grâce aux réactions et à l'engagement des utilisateurs. Plus TiddlyWiki deviendra d'autant plus utile à tous que nous serons de plus en plus nombreux à l'utiliser. Aussi, Si vous appréciez l'utilité de TiddlyWiki, faites le savoir. Le meilleur moyen de garantir son avenir est de devenir des centaines de fois plus populaire qu'auparavant.

Aider à améliorer le code et la documentation

Vous pouvez contribuer à TiddlyWiki de plusieurs façons :

  • Rédiger des didacticiels
  • Contribuer à la documentation sur tiddlywiki.com
  • Réaliser des vidéocaptures d'écran
  • Relever les liens, trucs et astuces pertinents au sein d'un wiki

Le code et la documentation principal de TiddlyWiki se trouvent sur GitHub, où sont accueillies les différentes contributions:

Hidden Setting: Default Tiddler Icon

 6 mars 2020 à 14h50

A default tiddler icon can be specified by creating a tiddler called $:/config/DefaultTiddlerIcon containing the title of the tiddler containing the icon.

Hidden Setting: Disable Drag and Drop

 19 mai 2021 à 16h54

Depuis : 5.1.22 To disable all the drag and drop operations that are built into the core, set the following tiddler to "no":

$:/config/DragAndDrop/Enable

To selectively re-enable drag and drop for an instance of the list-tagged-draggable Macro or list-links-draggable Macro you must ensure that the variable tv-enable-drag-and-drop is set to yes for the scope of the macro invocation. For example, note how it is still possible to use drag and drop within this list even if $:/config/DragAndDrop/Enable is set to "no":

Note that when using the DropzoneWidget and the DroppableWidget directly the enable attribute works independently of the global setting.

Hidden Setting: Disable Lazy Loading

 25 octobre 2019 à 11h01

LazyLoading can be disabled by setting this value to yes

$:/config/SyncDisableLazyLoading

Hidden Setting: Enable File Import in Editor

 19 mai 2021 à 17h00

Depuis : 5.2.0

$:/config/Editor/EnableImportFilter

This filter determines whether dragging and dropping files in the editor works for a given tiddler or not. A non-empty result enables drag and drop in the editor for that tiddler. This filter is used in such a manner that it respects the global drag and drop setting.

Hidden Setting: Filename for Save Wiki Button

 22 janvier 2019 à h00

Depuis : 5.1.19 When saving a TiddlyWiki using the enregistrer les modifications button, the default file name used for saving is constructed using the Title of the TiddlyWiki as entered in the Control Panel, which is stored in the tiddler $:/SiteTitle.

The value used is in the form {{$:/SiteTitle}}.html. This causes the filename to be constructed from the site Title with a .html extension.

If a tiddler named $:/config/SaveWikiButton/Filename is created, the text in that tiddler will be used as the default file name used for saving the TiddlyWiki.

Hidden Setting: HTML Parser Sandbox

 11 avril 2021 à 11h01

Depuis : 5.2.0 By default, tiddlers with the type text/html are displayed in an iframe with the sandbox attribute set to the empty string. This causes all security restrictions to be applied, disabling many features such as JavaScript, downloads and external file references. This is the safest setting.

To globally disable the sandbox, set the tiddler $:/config/HtmlParser/DisableSandbox to yes. This will mean that the code in the iframe has full access to TiddlyWiki's internals, which means that a malicious HTML page could exfiltrate data from a private wiki.

To keep the sandbox but control which restrictions are applied, ensure that $:/config/HtmlParser/DisableSandbox is not set to yes, and then set $:/config/HtmlParser/SandboxTokens to the desired list of tokens from the MDN documentation.

Note that these are global settings. To control the sandboxing on an individual tiddler basis will require a custom <iframe> to be used.

Hidden Setting: More Tabs Horizontal

 28 novembre 2022 à 9h29

Set the $:/config/ui/SideBar/More/horizontal tiddler to yes, to align the More -> Tabs in horizontal orientation.

Hidden Setting: Navigate on Enter

 8 novembre 2020 à 10h49

The configuration Tiddler $:/config/Search/NavigateOnEnter/enable can be used to enable (if set to yes) Navigation to and Creation of missing Tiddlers in the various search input fields when hitting Enter respectively ctrl-Enter

Hidden Setting: New-Image Type

 16 novembre 2021 à 22h25

By default new images are created with the image-type jpeg

The hidden setting in $:/config/NewImageType can be set to another Image-Type which is used for new Image Tiddlers, like png

Hidden Setting: Retain Story ordering

 

Depuis : 5.2.4 The tiddler $:/config/ControlPanel/Basics/DefaultTiddlers/RetainStory contains the value that is assigned to $:/DefaultTiddlers when clicking the "retain story ordering" button in $:/ControlPanel under the Info -> Basics tab.

Hidden Setting: Scroll Top Adjustment

 16 août 2018 à 12h06

As part of navigating to a tiddler, TiddlyWiki scrolls the page so that the top of the tiddler lines up with the top of the browser window. This means that the upper part of tiddlers can be obscured when using custom position:fixed toolbars at the top of the window.

To adjust the scroll position to allow for the toolbar, add the CSS class tc-adjust-top-of-scroll to the toolbar. TiddlyWiki's scrolling mechanism will then dynamically adjust the scroll position by the height of that element.

Hidden Setting: Search AutoFocus

 19 juin 2015 à 17h26

When TiddlyWiki first opens in the browser the search box is automatically given the focus by default. If this causes problems, you can change the default by changing this value from true to false:

$:/config/Search/AutoFocus

Hidden Setting: Search Minimum Length

 11 octobre 2016 à 8h42

Depuis : 5.1.14 Controls the minimum length of a search string before results are displayed.

Defaults to "3".

$:/config/Search/MinLength

Hidden Setting: Show Edit Preview per Tiddler

 29 octobre 2021 à 10h03

Controls whether the tiddler editing preview is controlled globally (the default) or on a per-tiddler basis.

Set it to yes to enable per-tiddler mode.

$:/config/ShowEditPreview/PerTiddler

Hidden Setting: Sync Logging

 3 septembre 2019 à 20h23

Specifies whether Syncadaptor should log information to the browser's developer console or not.

Defaults to yes. Set to no to disable logging.

Changing needs restart to take effect.

$:/config/SyncLogging

Hidden Setting: Sync Polling Interval

 3 septembre 2019 à 20h23

Specifies the interval at which Syncadaptor synchronizes tiddlers between the server and the browser.

Defaults to "60000" (60 * 1000 ms = 1 min).

Changing needs restart to take effect.

$:/config/SyncPollingInterval

Hidden Setting: Sync System Tiddlers From Server

 9 septembre 2022 à 10h43

Depuis : 5.1.23 Determines whether system tiddlers are synced from the server under Node.js. (Note that this is a one-way setting; system tiddlers are always synced to the server).

  • no – system tiddlers are not synced from the server (default)
  • yes – system tiddlers are synced from the server

Engaging sync of system tiddlers means that tiddlers such as $:/StoryList and $:/HistoryList get synced, which can lead to unexpected outcomes when multiple users are connected to the same server at the same time (it means that the story sequence is synced between all the users).

$:/config/SyncSystemTiddlersFromServer

Hidden Setting: Tab Index for Edit-Inputs

 2 juillet 2019 à 8h48

The input fields of Tiddlers that are being edited can be assigned a tabindex value (preferably 1) so that the Tab key can be used to directly move the focus from one input to the next or backwards using shift-Tab

$:/config/EditTabIndex

Hidden Setting: Tags Minimum Length

 3 décembre 2017 à 23h31

Depuis : 5.1.16 Tag Dropdown: Controls the minimum length of an input string before results are displayed.

Defaults to "0".

$:/config/Tags/MinLength

Hidden Setting: Template for Save Wiki Button

 15 décembre 2018 à 15h48

Determines the template used when saving via the "save wiki" page control button.

Defaults to $:/core/save/all.

You can change this setting to choose what is saved when the "save wiki" button is clicked.

$:/config/SaveWikiButton/Template

Hidden Setting: Typing Refresh Delay

 14 octobre 2019 à 10h18

TiddlyWiki defers processing changes to draft tiddlers and tiddlers with the prefix $:/temp/volatile/ until a timeout has elapsed (this is called throttling). The mechanism can be extended to other tiddlers by adding a throttle.refresh field. See RefreshThrottling for details.

The default value of 400ms gives a good balance of responsiveness in most cases but isn't always optimal on lower powered mobile devices.

The timeout can now be changed by changing this value (in milliseconds):

$:/config/Drafts/TypingTimeout

Hidden Setting: ViewTemplate and EditTemplate

 4 juillet 2019 à 6h35

The configuration Tiddlers $:/config/ui/ViewTemplate and $:/config/ui/EditTemplate can be used to change the ViewTemplate respectively the EditTemplate used in the Story PageTemplate

Hidden Settings

 19 juin 2015 à 17h24

Hidden Settings: Import Content Types for Editor

 19 mai 2021 à 17h02

Depuis : 5.2.0

$:/config/Editor/ImportContentTypesFilter

This filter determines which contentTypes can be imported by dragging and dropping into the editor. It used by a DropzoneWidget wrapped around the editor, for the contentTypesFilter attribute.

Plugin Highlight

 15 juin 2015 à 7h45

Ce plugin propose la coloration syntaxique.

Voir https://tiddlywiki.com/plugins/tiddlywiki/highlight/

Histoire de TiddlyWiki

 21 décembre 2014 à 12h11

Il s'agit de réflexions personnelles sur l'histoire et le développement de TiddlyWiki, par son créateur JeremyRuston.

Origines de TiddlyWiki

En 1997, un collègue me montra le wiki original de Ward Cunningham. Que quelque chose d'aussi puissant puisse être écrit en seulement 700 lignes de Perl m'impressionna à l'époque, et j'étais aussi fasciné par la manière radicale dont la sécurité et le système de permissions avaient été repensés. Comme beaucoup d'autres développeurs, je me suis jeté sur tous les types de wiki qui me passaient sous la main, afin d'explorer leur utilisation en environnement de travail.

Le principal attrait du wiki pour moi était le sentiment qu'il pouvait remettre en question le paradigme qui prévalait jusqu'alors, à savoir les documents conçus pour être imprimés, et les emails.

Après avoir observé pendant quelques années la manière dont les gens utilisaient les wikis, j'ai remarqué que les utilisateurs avancés faisait grand usage de la possibilité d'ouvrir plusieurs pages de wiki à la fois dans les onglets de leur navigateur, pour se faciliter la comparaison et la révision des pages, la recopie de texte d'une page à l'autre, et pour se constituer une sorte de file de pages en attente d'être lues.

J'ai eu le sentiment que cette capacité à manipuler plusieurs pages en même temps était centrale dans la capacité à réorganiser un wiki, et on considère généralement qu'un wiki réorganisé avec amour a tendance à être plus utile. Pourtant, les interfaces utilisateur des wiki ont toujours été exclusivement conçues pour la présentation et la manipulation d'une seule page à la fois.

Toutes ces réflexions se sont synthétisées lorsque j'ai vu l'interface de Gmail en avril 2004, qui utilisait Ajax de manière ingénieuse pour assembler des mails individuels dans des fils de conversations.

J'ai commencer à expérimenter avec HTML et JavaScript pour pousser l'idée. Je n'avais eu jusqu'à présent pratiquement aucune expérience de l'un ou de l'autre, à part composer quelques pages statiques et des sites ASP simples dans des vies précédentes. Se plonger dans ces techniques orientées client a été une expérience douloureuse ; comme tout le monde, j'étais horrifié de découvrir l'atrocité des incompatibilités et incohériences de la programmation web.

Lancement de TiddlyWiki

En septembre 2004, j'ai donc publié une version préliminaire de TiddlyWiki. Il s'agissait de la plus petite application possible démontrant le concept : un simple fichier HTML de 48KB qui s'auto-engendrait.

L'inconvénient d'avoir écrit de cette manière la première version de TiddlyWiki, c'est que ça la rendait complètement impraticable pour l'édition — quand vous cliquiez sur « enregistrer les modifications », elle faisait apparaître une fenêtre montrant les données qui auraient été enregistrées s'il avait été possible d'écrire sur le système de fichiers depuis une page HTML.

Un grande partie des premiers commentaires sur TiddlyWiki étaient que c'était un outil sympathique, mais qu'il aurait été plus utile si on avait pu enregistrer correctement les modifications. J'étais plutôt frustré, car je tenais pour certaine l'impossibilité pour un fichier HTML tournant dans un navigateur d'enregistrer des modifications sur le système de fichiers local.

Quelques mois plus tard, j'ai repéré une extension Firefox expérimentale qui permettait à TiddlyWiki de sauvegarder les modifications depuis le navigateur. En examinant le code, je réalisai que l'API utilisée pour écrire sur le système de fichiers était en fait disponible pour les fichiers HTML ordinaires — pourvu qu'ils soient chargés depuis une URI de type file://.

J'adaptai le code Firefox dans le noyau de TiddlyWiki et j'ajoutai bientôt une fonctionnalité similaire pour Internet Explorer (en utilisant un ancien contrôle ActiveX que Microsoft distribuait avec Internet Explorer).

Croissance de TiddlyWiki

Une étape majeure dans la croissance de TiddlyWiki fut la création de GTDTiddlyWiki par Nathan Bowers. Il partit du TiddlyWiki de base et l'adapta spécifiquement pour la gestion et le suivi de tâches à l'aide de la méthodologie bien connue Getting Things Done. GTDTiddlyWiki fut un succès immédiat, salué avec enthousiasme par des sites comme LifeHacker.

Dans les années qui suivirent, TiddlyWiki continua à croître en popularité, et s'enrichit de nouvelles fonctions et possibilités. En un an, je pus trouver une indépendance financière en proposant du développement sur mesure autour de TiddlyWiki, notamment en travaillant avec un pionnier du wiki, SocialText, sur la possibilité de synchroniser des modifications avec un serveur en ligne.

Acquisition par British Telecom

En mai 2007, British Telecom a acquis Osmosoft, ma société de consultant. Acquérir une société avec un seul employé et un minuscule filet de revenu relevait d'une décision inhabituelle, Osmosoft ne détenant même pas la propriété intellectuelle de TiddlyWiki, puisque je l'avais transférée à UnaMesa pour assurer son avenir pour la communauté.

La motivation de British Telecom était de mieux comprendre les écosystèmes basés sur les communautés. Je rejoignis la société en tant que « Head of Open Source Innovation », responsable de la gouvernance open source, et fournissant des conseils et de l'expertise sur la manière de participer à des communautés open source.

Osmosoft et TiddlySpace

Je constituais une équipe chez BT sous le nom Osmosoft. Nous avions comme objectif d'évangéliser les bénéfices de l'open source et d'aider d'autres équipes à réaliser ces bénéfices en pratique. Nous nous sommes aussi rendu compte qu'il était nécessaire d'évangéliser l'usage du Web en général, et les standards web en particullier.

Notre approche était de privilégier la démonstration sur le discours. Nous avons travaillé avec la communauté TiddlyWiki pour étendre l'écosystème, et nous avons construit de nombreux systèmes internes pour BT (certains basés sur TiddlyWiki, d'autres non).

La principale contribution d'Osmosoft à la communauté TiddlyWiki fut la création de TiddlyWeb et TiddlySpace. TiddlyWeb était un serveur robuste, capable de servir des tiddlers sur l'Internet, mais aussi de composer des vues TiddlyWiki à partir de ces tiddlers. Quant à TiddlySpace, il s'agissait d'une tentative pour packager TiddlyWeb de façon plus directement utilisable.

Départ de British Telecom

Fin 2011, j'ai progressivement senti que j'aurais plus de latitude hors de l'enceinte de British Telecom pour réaliser le potentiel de TiddlyWiki. D'un commun accord, je suis parti et j'ai commencé à travailler comme développeur indépendant, en me concentrant principalement sur une réincarnation de TiddlyWiki, qui pris la forme de TiddlyWiki5.

Développement de TiddlyWiki5

J'ai travaillé sur une nouvelle version de TiddlyWiki à partir de novembre 2011. En tant que programmeur, travailler à une « version 2.0 » de quelque chose que j'avais déjà écrit était une projet très séduisant. Cela signifiait que les besoins étaient bien compris, et je pouvais dès lors me concentrer sur l'architecture et ses évolutions nécessaires à la mise en œuvre des fonctionnalités désirées.

L'avenir

À présent que TiddlyWiki5 a enfin quitté son statut de « beta », j'ai bon espoir qu'il vivra longtemps. Comme il n'utilise que des fonctionnalités standard de HTML5 et Node.js, il n'y a aucune raison pour qu'il ne reste pas entièrement opérationnel dans les années qui viennent. Mon but est qu'il survive au moins 25 ans.

Mécanisme d'historique

 24 juin 2015 à 10h09

Le tiddler système $:/HistoryList garde la trace d'une liste de tiddlers composé de l'historique de navigation. Chaque fois que vous cliquez sur un lien vers un tiddler, le titre du tiddler cible est ajouté au sommet de la pile.

La liste historique est mémorisée en JSON qui permettent des détails additionnels au sujet des coordonnées du nœud DOM initialisant la navigation. Ce champ peut être utilisé comme suit :

<$list filter="[list[$:/StoryList]]" history="$:/HistoryList" storyview="pop">

<$button message="tm-close-tiddler" class="tc-btn-invisible tc-btn-mini">&times;</$button> <$link to={{!!title}}><$view field="title"/> <$reveal type="match" state="$:/HistoryList!!current-tiddler" text=<<currentTiddler>>>&#x2713;</$reveal></$link>

</$list>

ce qui affichera de façon semblable à l'onglet "Ouvert" du menu latéral, avec en sus, une coche contre le tiddler objet de la dernière navigation.

HelloThere

GettingStarted

Community

Déroulé vide

Pour afficher un contenu lorsque le déroulé est vide, créez un $:/config/EmptyStoryMessage et entrez le contenu souhaité. Le cas suivant montrerait le tiddler GettingStarted quand tous les autres sont fermés.

{{GettingStarted||$:/core/ui/ViewTemplate}}

Lignes horizontales en WikiTexte

 21 avril 2022 à 1h03

Vous pouvez insérer une ligne horizontale à l'aide d'une série d'au moins trois tirets tout seuls sur une ligne :

Paragraphe précédent.

---
Paragraphe suivant.

Affichera ceci :

Paragraphe précédent.


Paragraphe suivant.

Remarque
  • La ligne vide avant les --- est nécessaire pour que la ligne horizontale soit interprétée correctement, et pas comme un tiret.

Ajouter une bannière d'appel aux contributions GitHub

 27 novembre 2014 à 21h45

Lorsque vous éditez un tiddler sur https://tiddlywiki.com, vous voyez un petit bandeau qui vous invite à éditer la source du tiddler sur GitHub.

Si vous utilisez Node.js, vous pouvez répliquer cette fonction pour votre propre site basé sur TiddlyWiki de la manière suivante :

  1. Assurez-vous que la configuration suivante est incluse dans le fichier tiddlywiki.info de votre dossier TiddlyWiki
    	"config": {
    		"retain-original-tiddler-path": true
    	}
  2. Copiez le tiddler $:/ContributionBanner vers votre wiki
  3. Effectuez les changements suivants :
    1. Ajuster le lien GitHub https://github.com/Jermolene/TiddlyWiki5/edit/master/editions/tw5.com/tiddlers/ pour le faire pointer vers votre propre répertoire GitHub.
    2. Assurez-vous que le texte commençant par "Can you help us improve this documentation?" est approprié pour vos visiteurs
    3. Remplacez le lien vers Améliorer la documentation de TiddlyWiki par un lien vers le tiddler qui contient vos instructions pour votre propre procédure de contributions.

Un nouvel onglet dans le menu latéral

 20 juin 2015 à 10h59

Pour créer un nouvel onglet dans le menu latéral :

  1. Créez un tiddler et étiquetez-le avec le tag système $:/tags/SideBar
  2. Par défault, libellé de l'onglet correspond au titre du tiddler, mais vous pouvez le remplacer en remplissant le champ caption.
  3. Pour définir l'ordre des onglets, servez-vous des champs list-after ou list-before, comme expliqué dans Étiquetez par tags
    • Par exemple : donnez à list-after la valeur $:/core/ui/SideBar/Open pour placer un onglet de barre latérale juste après l'onglet « Open » (Ouverts)

Notez qu'il est possible de créer de la même manière de nouveaux onglets sous l'onglet « More » (Plus), en utilisant le tag $:/tags/MoreSideBar.

How to apply custom styles

 11 avril 2018 à 18h40

Des styles personnalisés selon les tags

 20 juin 2015 à 11h00

Vous pouvez appliquer des styles personnalisés aux tiddlers ayant un tag particulier en définissant une classe CSS nommée tc-tagged-<Nom du tag>.

Par exemple, pour coloriser les tiddlers étiquetés "NightReader" d'une façon spéciale, Créer une feuille de style définissant la classe tc-tagged-NightReader comme suit :

.tc-tagged-NightReader {
	background-color:black;
	color: orange;
	padding: 35px 35px;
}

.tc-tagged-NightReader .tc-tiddler-body {
	font-size: 1.5em;
}

La classe tc-tagged-NightReader s'applique au tiddler tou entier et pas seulement au texte du tiddler. Si vous désirez l'appliquer à une portion plus réduite du tiddler vous pouvez ajuster le sélecteur CSS, comme ici avec .tc-tagged-NightReader .tc-tiddler-body.

Notez que les tags contenant des espaces et des caractères non-alphanumériques seront convertis en utilisant le codage URI, rendant le nom de classe CSS généré difficile à prévoir. Par exemple :

TagNom généré pour la classe
$:/mytagtc-tagged-%24%3A%2Fmytag
one twotc-tagged-one%20two
£35.23tc-tagged-%C2%A335.23

Comment construire un TiddlyWiki5 à partir de tiddlers isolés

 24 novembre 2014 à 15h13

Commencez par installer TiddlyWiki comme indiqué dans Installer TiddlyWiki sur Node.js.

  1. Créez un dossier TiddlyWiki vide
    • Le plus simple pour ce faire est d'utiliser la commande init :
      tiddlywiki ~/MonDossierWiki --init empty
    • Vous pouvez aussi vous contenter de copier le dossier editions/empty à partir du répertoire source TiddlyWiki5
    • Ou encore, ex-nihilo :
      1. Créez un nouveau dossier dans un endroit pratique (par exemple ~/MonDossierWiki)
      2. Créez un fichier appelé tiddlywiki.info contenant le texte ci-dessous :
        • {"themes": ["tiddlywiki/vanilla","tiddlywiki/snowwhite"]}
      3. Créez un sous-dossier appelé tiddlers
  2. Ajoutez des fichiers de tiddlers individuels dans le répertoire ~/MonDossierWiki/tiddlers
  3. Exécutez la commande ci-dessous depuis le répertoire racine de TiddlyWiki5 pour construire un fichier TiddlyWiki5 complet à partir des tiddlers :
    tiddlywiki ~/MonDossierWiki --rendertiddler $:/core/save/all index.html text/plain

How to change the sort order of sub-branches in a TOC macro

 20 février 2019 à h00

Imagine that you are using a Table of Contents macro similar to this:

<<toc-selective-expandable  "TableOfContents" "sort[title]">>

The sorting is fine for most cases, but you would like all your items tagged Journal to be sorted by the created field. How can you apply a separate sort order to just those sub-items tagged Journal?

The trick is to add a field to the parent tagging tiddler (i.e. Journal) that points to a different sort criteria. Let's call the field fuzzy, and populate it with the value created (created is the name of the field that contains a tiddler's creation date).

Now change your Table of Contents to look like this:

<<toc-selective-expandable  "TableOfContents" "sort{!!fuzzy}">>

Now your Table of Contents will sort by title everywhere, except for the children of the Journal tiddler, which will sort by the created date.

The downside to this trick is that you can't apply a reverse sort based on just one special field. If you reverse the sort order, it will be reversed everywhere.

How to create a custom story tiddler template

 6 décembre 2021 à 16h51

Here we show how to add a rule to the Story Tiddler Template Cascade that causes tiddlers tagged to be displayed with a custom appearance incorporating thumbnails of the tiddlers named in the list field.

Open Demo Tiddler List with Custom Story Tiddler Template to see the demo.

First, we add a new step to the story tiddler template cascade. The new filter step is:

[tag[$:/tags/TiddlerList]then[$:/_tw5.com/CustomStoryTiddlerTemplateDemo/Template]]

It can be read as:

If the tiddler has the tag $:/tags/TiddlerList then return $:/_tw5.com/CustomStoryTiddlerTemplateDemo/Template
The template $:/_tw5.com/CustomStoryTiddlerTemplateDemo/Template also depends on styles defined in $:/_tw5.com/CustomStoryTiddlerTemplateDemo/Styles.

The story tiddler template cascade is defined by the tag , so we need to create a configuration tiddler with that tag.

We also need to make sure that it is inserted at the correct point in the cascade:

  • The new rule must be after the "draft" rule to ensure that draft tiddlers with the tag $:/tags/TiddlerList can be edited
  • The new rule must be before the "default" rule otherwise it will never be executed

The control panel "Cascades" tab shows that this can be achieved by inserting the new step immediately before the default step using the list-before field.

The full list of fields in the configuration tiddler is:

$:/_tw5.com/CustomStoryTiddlerTemplateDemo/Filter

code-bodyyes
list-before$:/config/StoryTiddlerTemplateFilters/default
tags$:/tags/StoryTiddlerTemplateFilter
text[tag[$:/tags/TiddlerList]then[$:/_tw5.com/CustomStoryTiddlerTemplateDemo/Template]]

Finally, we need to create the demo tiddler itself:

Demo Tiddler List with Custom Story Tiddler Template

created20211204122107920
filterHelloThere Community GettingStarted Features Reference Plugins Learning
modified20211204131610322
tags$:/tags/TiddlerList
textThis is a demo tiddler with a custom story tiddler template that displays the tiddlers named in the list field as a fan. See [[How to create a custom story tiddler template]] for details.
typetext/vnd.tiddlywiki

How to create a custom tiddler colour rule

 6 décembre 2021 à 16h51

Here we show how to add a rule to the Tiddler Colour Cascade that causes tiddlers with the tag to be given a bright blue colour and tiddlers with the tag to be given a dark purple colour.

How to create a custom tiddler icon rule describes how the same tiddlers have been given a custom icon

First, we add a new step to the tiddler colour cascade. The new filter step is:

[tag[TableOfContents]then[#1e90ff]]
[tag[Working with TiddlyWiki]then[darkorchid]]

It can be read as:

If the tiddler has the tag "TableOfContents" then return the colour #1e90ff
Else if the tiddler has the tag "Working with TiddlyWiki" then return the colour darkorchid

The tiddler colour cascade is defined by the tag , so we need to create a configuration tiddler with that tag.

We also need to make sure that it is inserted at the correct point in the cascade:

  • The new rule must be after the "colour-field" rule to ensure that tiddlers with an explicit color field will respect the value of that field
  • The new rule must be before the "default" icon otherwise it will never be seen if the default colour is specified

The control panel "Cascades" tab shows that this can be achieved by inserting the new step immediately before the default step using the list-before field.

The full list of fields in the configuration tiddler is:

$:/_tw5.com/CustomTiddlerColourCascadeDemo

created20211206114433294
list-before$:/config/TiddlerColourFilters/default
modified20211206114433294
tags$:/tags/TiddlerColourFilter
text[tag[TableOfContents]then[#1e90ff]] [tag[Working with TiddlyWiki]then[darkorchid]]
typetext/vnd.tiddlywiki

How to create a custom tiddler icon rule

 6 décembre 2021 à 16h51

Here we show how to add a rule to the Tiddler Icon Cascade that causes tiddlers with the tag to be given the "globe" icon and tiddlers with the tag to be given the "help" icon .

How to create a custom tiddler colour rule describes how the same tiddlers have been given a custom colour

First, we add a new step to the tiddler icon cascade. The new filter step is:

[tag[TableOfContents]then[$:/core/images/globe]]
[tag[Working with TiddlyWiki]then[$:/core/images/help]] 

It can be read as:

If the tiddler has the tag "TableOfContents" then return $:/core/images/globe
Else if the tiddler has the tag "Working with TiddlyWiki" then return $:/core/images/help

The tiddler icon cascade is defined by the tag , so we need to create a configuration tiddler with that tag.

We also need to make sure that it is inserted at the correct point in the cascade:

  • The new rule must be after the "icon-field" rule to ensure that tiddlers with an explicit icon field will respect the value of that field
  • The new rule must be before the "default" icon otherwise it will never be seen if the default icon is specified

The control panel "Cascades" tab shows that this can be achieved by inserting the new step immediately before the default step using the list-before field.

The full list of fields in the configuration tiddler is:

$:/_tw5.com/CustomTiddlerIconCascadeDemo

created20211205195110592
list-before$:/config/TiddlerIconFilters/default
modified20211205195217941
tags$:/tags/TiddlerIconFilter
text[tag[TableOfContents]then[$:/core/images/globe]] [tag[Working with TiddlyWiki]then[$:/core/images/help]]
typetext/vnd.tiddlywiki

How to create dynamic editor toolbar buttons

 18 octobre 2021 à 11h23

Create a New Toolbar Button

The easiest way to create new editor toolbar button is to clone and open one.

This tiddler contains all the necessary elements that are important for toolbar buttons.

text
We don't discuss the text field details in this howto
caption
The caption field is used to display the shortcut name in the $:/ControlPanel : Keyboard Shortcuts tab
condition
A filter, that defines the button visibility state
condition-disabled Depuis : 5.1.23
A filter, that allows us to define the "disabled" attribute for buttons. eg: [[$:/temp/bold/disabled]get[state-disabled]else[no]]
This condition must return "no", if the "state tiddler" or "state field" doesn't exist! So there has to be a else[no] element in the filter.
description
Is used as the button tooltip
icon
Assigns the button icon. We use $:/core/images/spiral here. More button icons can be found in the Icon Gallery
shortcuts
This is the Keyboard Shortcut Descriptor eg: ((temp-bold))

Disabled State

You can use any "state tiddler" to define the button disabled state. It's important, that the condition-disabled field is a filter. For our example we use the state-disabled field from tiddler: $:/temp/bold/disabled

The easiest way to test filters is with the $:/AdvancedSearch : Filter tab

The temporary "bold button" is disabled: "no" ... You can see the button in the editor toolbar if you edit any tiddler!

Create Keyboard Shortcuts for New Button

For our HowTo we use the Keyboard Shortcut Descriptor: ((temp-bold))

To create a valid shortcut configuration we need 2 tiddlers:

$:/config/ShortcutInfo/temp-bold .. and
$:/config/shortcuts/temp-bold

Clean up the Configuration Tiddlers

If you don't need the config tiddlers anymore you can

How to create keyboard shortcuts

 


TiddlyWiki distinguishes two types of keyboard shortcuts. Those that are limited to work within input fields or textareas which are handled by the $keyboard widget and keyboard shortcuts that work globally - which means that only the page needs to have focus in order for them to be accessible. The latter are handled by a mechanism that starts to work when a wiki is loaded

The configuration mechanism is the same for both shortcut-types

A tiddler with the prefix $:/config/ShortcutInfo/ and a unique suffix appended, like my-shortcut, makes the new shortcut appear in the $:/ControlPanel within the Keyboard Shortcuts Tab. An optional description can be added within its text field

In the Keyboard Shortcuts Tab the key combination that should trigger the shortcut can be configured:

Look for the unique suffix defined for the new shortcut and click the button to open a popup that detects key combinations and shows the detected combination in its input field
The add shortcut assigns the key-combination to the shortcut

Depending on the chosen platform the configuration mechanism creates a tiddler with a specific nomenclature

$:/config/shortcuts/ + the shortcut suffix for shortcuts that will work on all platforms (operating systems)
$:/config/shortcuts-(mac/not-mac/windows/not-windows/linux/not-linux)/ + the shortcut suffix for shortcuts that will work on the chosen platform only or that will not work on the excluded platform

Examples

  • $:/config/shortcuts/my-shortcut
  • $:/config/shortcuts-mac/my-shortcut
  • $:/config/shortcuts-windows/my-shortcut
  • $:/config/shortcuts-linux/my-shortcut
  • $:/config/shortcuts-not-mac/my-shortcut
  • $:/config/shortcuts-not-windows/my-shortcut
  • $:/config/shortcuts-not-linux/my-shortcut

Note that those platform-specific tiddlers don't have to be created manually if the ShortcutInfo tiddler as mentioned above is created first and the shortcut is configured in the ControlPanel


At this point the shortcut is defined and its actions can be configured

Using the Keyboard Widget

A $keyboard widget detects the key combinations pressed within an input or textarea field within its scope. The $keyboard widget needs to "embrace" the input or textarea field and its key attribute either points to a configuration tiddler using the Key Descriptor Syntax or explicitely contains the key
<$keyboard key="((my-shortcut))" actions='<$action-setfield $tiddler="my-tiddler" $field="my-field" $value="my-value"/>'>

<$edit-text tag="input" tiddler="my-tiddler"/>

</$keyboard>
<$keyboard key="alt-shift-M" actions='<$action-setfield $tiddler="my-tiddler" $field="my-field" $value="my-value"/>'>

<$edit-text tag="input" tiddler="my-tiddler"/>

</$keyboard>
If actions are defined , the $keyboard widget will invoke the actions defined in its actions attribute when it detects the key-combination defined in its key attribute being pressed in any input or textarea field within its scope

Using global Keyboard Shortcuts

See Keyboard Shortcut Tiddler for detailed information about creating new global keyboard shortcuts.
The actions for global keyboard shortcuts are stored in the text field of tiddlers tagged with
The key field connects an action-tiddler with the corresponding shortcut through the ((my-shortcut)) syntax, called Keyboard Shortcut Descriptor

Syntax: (( + a chosen suffix + ))

If the tiddler has the tag , the field key with the Keyboard Shortcut Descriptor as its value and some actions in its text field, the actions will be triggered when the mechanism detects the configured key-combination


Macros defined outside a global keyboard-shortcut (through a tiddler tagged $:/tags/Global) need to be imported in order to be accessible. The import pragma can be used for that

\import [subfilter{$:/core/config/GlobalImportFilter}]

If the tiddler that contains the macro definition is known and - for example - titled my-macro-tiddler

\import my-macro-tiddler


Some actions require to be wrapped within a $navigator widget. That is necessary for the following list of widgets and messages in order to work if used within global keyboard shortcuts

Widgets

$action-navigate (ActionNavigateWidget)

Messages

WidgetMessage: tm-cancel-tiddler
WidgetMessage: tm-close-all-tiddlers
WidgetMessage: tm-close-other-tiddlers
WidgetMessage: tm-close-tiddler
WidgetMessage: tm-delete-tiddler
WidgetMessage: tm-edit-tiddler
WidgetMessage: tm-import-tiddlers
WidgetMessage: tm-new-tiddler
WidgetMessage: tm-perform-import
WidgetMessage: tm-relink-tiddler
WidgetMessage: tm-rename-tiddler
WidgetMessage: tm-save-tiddler

Personnaliser TiddlyDesktop

 2 avril 2022 à 11h58

Avertissement :

Avant d'expérimenter avec les entrailles de TiddlyDesktop, vous devriez noter l'emplacement du « dossier de configuration utilisateur » : cliquez sur le bouton « Settings » de la fenêtre principale de TiddlyDesktop, puis cliquez sur le bouton « Open user config folder ». Ensuite, remontez d'un niveau pour localiser le dossier parent, qui devrait s'appeler « TiddlyDesktop ». Si quelque chose se passe mal, vous pouvez restaurer l'état d'origine de TiddlyDesktop en supprimant ce dossier et son contenu.

Cliquez sur le bouton « Backstage » de la fenêtre principale de TiddlyDesktop pour ouvrir le wiki d'infrastructure qui tourne en coulisses. C'est une pseudo-instance de TiddlyWiki sous Node.js qui fournit l'interface utilisateur et la mécanique de TiddlyDesktop.

Comment me débarrasser du bouton « Add a TiddlyWiki Folder » ?

Dans le wiki d'infrastructure, localisez le tiddler WikiListToolbar (il y a un lien dans HelloThere). Passez en mode d'édition, et vous verrez le WikiTexte des boutons de barre d'outils. Si vous faites des modifications et les enregistrez, elles seront immédiatement prises en compte dans la fenêtre principale de TiddlyDesktop.

Comment changer le bouton « advanced » en bouton « reveal backups » ?

Vous pouvez copier le code du bouton « reveal backups » disponible dans le tiddler $:/TiddlyDesktop/Settings, et le coller dans WikiListToolbar.

Comment modifier les couleurs ?

Comme d'habitude dans TiddlyWiki : vous pouvez utiliser la palette, ou définir vos propres CSS.

Comment changer l'ordre d'apparition des tiddlers (qui semble alphabétique) ?

Ouvrez le tiddler WikiList en mode édition, naviguez jusqu'en bas du code, et modifiez le widget <$list> à l'intérieur de la macro « wikilist » :

<$list filter="[tag[wikilist]sort[title]!has[draft.of]]" emptyMessage="Add a ~TiddlyWiki file or folder to get started. Click the buttons above to browse, or drag and drop from your file Explorer/Finder" storyview="pop">

How to embed PDF and other documents

 29 décembre 2016 à 17h57

Note about embedding versus external linking

Note: Before we dive into how you can embed files of a certain type, you may want to consider not embedding and instead simply linking to external resources like this:

[ext[title|path/to/that.file]] 

Then let your browser decide how to handle the resource. The advantage to this approach is that it is simple and quick. The disadvantage is that the file doesn't actually travel with the TW5 file and that you can't use node.js with method #2 below to quickly file paths.

Two ways to embed a PDF in your TW5 file.

1. Embedding with Drag and Drop

One is to drag and drop the file onto your TW5 file. Wait for the green bar to appear at the top, drop, and then import from the import tiddler. This actually embeds the contents of your imported PDF (or other file) into your TW5 file.

This method be OK as long as your PDF is not too big. There can be concerns if your TW5 file becomes too big.

2. Embedding with '_canonical_uri'

The other way is to create a tiddler link to the external file. In this method the file is not actually incorporated into your TW5 file, but can be accessed with the {{My Image File.jpg}} transclusion syntax just like an embedded file. The location address of the file can also be changed under node.js. See ExternalImages for details of using external images with node.js.

Create a tiddler with a field _canonical_uri. Put in the local address to the external file. Set the type field to application/pdf.

With either way, with an appropriately configured browser, you should see your embedded PDF file.

Other File Types

There's only so many file formats that TW5 knows about. There is a list at ContentType. If your browser and/or TW5 doesn't know what to do with a particular file format, then you can only the use the second method to embed and then download a file. When you edit the tiddler a link is presented. You can right click on the link in order to download the file.

Exporter des tiddlers

 22 février 2022 à 18h26

Sélectionner tous les tiddlers pour l'exportation

Pour exporter tous les tiddlers, cliquez sur l'onglet Outils de la barre latérale. Trouvez le bouton exporter tout et cliquez dessus. Un menu flottant vous permet alors de choisir l'un des nombreux formats d'exportation des tiddlers.

Exporter un tiddler

Pour exporter un tiddler particulier, commencez par l'afficher, puis cliquez sur le bouton plus situé vers le haut du tiddler. Dans la liste qui apparaît, sélectionnez exporter ce tiddler. Un menu flottant vous permet alors de choisir l'un des nombreux formats d'exportation des tiddlers.

Exporter des tiddlers selon un critère (filtre)

Pour exporter une sélection de tiddlers, cliquez sur le symbole de loupe à proximité de la zone de recherche de la barre latérale, ce qui va ouvrir le tiddler de recherche avancée. Choisissez l'onglet Filtrer car c'est le seul qui permet d'exporter une sélection de tiddlers. Les filtres utilisent une syntaxe particulière, cliquez sur ce lien pour découvrir comment concevoir des filtres.

Lorsque vous aurez rédigé un filtre, la liste des tiddlers correspondants apparaîtra. Vous pourrez alors cliquer sur le bouton Exporte ces tiddlers situé à droite de la zone de saisie du filtre. Un menu flottant vous permettra alors de choisir l'un des nombreux formats d'exportation des tiddlers.

Formats d'exportation

Actuellement, les formats d'exportation disponibles sont :

  • Le fichier au format CSV
  • Le fichier au format JSON
  • Le fichier HTML statique
  • Le fichier au format « .tid »

Le format « .tid » est particulier en ce qu'il ne permet d'exporter qu'un seul tiddler à la fois, même si vous essayer d'en exporter plusieurs à l'aide d'un filtre ou avec le bouton exporter tout.

How to hide the author's and other fields with CSS

 10 mars 2018 à 20h12

Sometimes you might want to save some screen space by hiding away the author's name in all tiddlers. Here's a quick way to do it:

  • Create a new tiddler with any title you want.
  • Give the tiddler the tag $:/tags/Stylesheet
  • In the text field of the tiddler put:
.tc-subtitle .tc-tiddlylink {display:none;}
  • Save the tiddler. The author's name field should no longer appear.

Similarly, the entire subtitle field including author and date can be removed with:

.tc-subtitle {display:none;}

Unfortunately, you can't hide just the date without also hiding the author using CSS.

And finally, for a truly minimalist look, you can remove the title with:

h2.tc-title {display:none;)

Une bannière avec la date de la dernière modification

 14 juin 2015 à 12h46

Voici comment afficher la date de la dernière modification dans une bannière du wiki dans un coin de la fenêtre :

  1. Copiez le plugin $:/plugins/tiddlywiki/github-fork-ribbon dans votre TiddlyWiki
  2. Sauvegardez et rechargez votre wiki
  3. Créez un nouveau tiddler appelé $:/_MyRibbon étiqueté $:/tags/PageControls et contenant :
    <div class="github-fork-ribbon-wrapper right">
    <div class="github-fork-ribbon" style="background-color:#DF4848;">
    <$list filter="[!is[system]!has[draft.of]!sort[modified]limit[1]]">
    <$link>
    <$view field="modified" format="date" template="DD mmm YYYY at 0hh:0mm"/>
    </$link>
    </$list>
    </div>
    </div>
  4. Si nécessaire, modifier la valeur background-color à votre convenance
  5. Vous pouvez aussi essayer de modifier le positionnement de la classe de right à right-bottom
    1. Pour faire apparaitre la bannière dans le coins supérieur gauche vous devrez étiqueter le $:/tags/PageTemplate au lieu de $:/tags/PageControls et changer la position de la classe à left

How to remove stop words

 18 novembre 2020 à 10h34

You can use the search-replace Operator in combination with the sortsub Operator to ignore stop words like "A" and "The" at the beginning of titles when sorting. (Note for example that "A Tale of Two Cities" sorts under "T" rather than "A")

[enlist<book-list>sortsub<compare-without-stopwords>]

You can also customise the listing so that "A Tale of Two Cities" is listed as "Tale of Two Cities, A" but still links to the correct tiddler.

<ul>
<$list filter="[enlist<book-list>sortsub<compare-without-stopwords>]">
<li><$link><$text text={{{[<currentTiddler>search-replace:i:regexp[(^The |A )(.*)],[$2, $1]]}}}/></$link></li>
</$list>
</ul>

Affichera ceci :

How to turn off camel case linking

 4 février 2017 à 19h13

CamelCase is used in most Wikis, but it can interfere with text presentation in some situations.

Turning off Camel Case locally

To turn off a particular instance of a CamelCase text, simply put a tilde (~) in front of the word, like this:

~CamelCase

Turning off Camel Case globally

To turn off CamelCase in all tiddlers, navigate to the Control Panel. Select the Settings tab and then scroll or read down to the Camel Case Wiki Links section and unselect Enable automatic CamelCase linking.

How to update TiddlyWiki to the latest version

 26 avril 2022 à 23h12

De nouvelles versions de TiddlyWiki sont publiées régulièrement, avec des améliorations et des corrections de bogues. Il est recommandé de rester à jour en hissant votre wiki au niveau de la dernière version.

Introduction

La procédure décrite ici est réservée à la mise à niveau de fichiers TiddlyWiki autonomes. Pour mettre à niveau TiddlyWiki sur Node.js, il existe une méthode différente.

Quand vous mettez à niveau, n'oubliez pas la première règle d'utilisation de Tiddlywiki :

Il est de votre responsabilité de vous occuper de vos données ; prenez soin d'effectuer des sauvegardes, surtout quand vous mettez à niveau le noyau de TiddlyWiki.

Mise à niveau en ligne

Cette procédure fonctionnera sur la plupart des navigateurs de bureau. Notez que vos données personnelles ne quittent pas votre navigateur pendant la procédure.

  1. Localisez votre fichier TiddlyWiki sur le système de fichiers (à l'aide de Windows Explorer, du Finder sur Mac OS X, ou de votre gestionnaire de fichiers sur Linux)
  2. Visitez la page https://tiddlywiki.com/upgrade.html dans votre navigateur
  3. Faites glisser votre ancien fichier TiddlyWiki HTML sur la fenêtre du navigateur
    • Si le fichier est crypté, un mot de passe vous sera demandé
  4. Passez en revue la liste des tiddlers qui seront mis à niveau
  5. Cliquez sur Upgrade
  6. Enregistrer les changements pour sauvegarder la nouvelle version

Cela aura pour résultat de télécharger sur votre ordinateur un fichier nommé upgrade.html. Ce fichier constitue la version à niveau de votre ancien fichier. Il se peut que vous deviez vous rendre là où upgrade.html a été téléchargé, renommer upgrade.html avec le nom de l'ancien fichier que vous mettez à niveau, et remplacer l'ancien fichier en déplaçant le nouveau à sa place.

Mise à niveau hors ligne

Vous pouvez également télécharger le fichier https://tiddlywiki.com/upgrade.html localement et effectuer la même procédure de glisser-déposer pour mettre vos fichiers à niveau.

Problèmes avec les mises à niveau

Il est possible qu'une personnalisation appliquée dans une version précédente devienne inopérante une fois la mise à niveau effectuée. Deux techniques peuvent être employées pour vous aider à retrouver l'origine du problème :

  • Essayez de répéter la mise à niveau en décochant tous les tiddlers qui pourraient contenir des personnalisations de TiddlyWiki
  • Utilisez le ModeSansÉchec pour désactiver toutes les adaptations personnalisées des tiddlers shadow

Vous pouvez voir quels tiddlers shadow ont été modifiés dans l'onglet Filtres de la recherche avancée. Choisir "Les tidders shadow modifiés" depuis le menu déroulant.

How to widen tiddlers (aka storyriver)

 8 décembre 2016 à h00

You can change the width of the main column of tiddlers (also known as the story river) by:

  • Clicking on the settings cog to open the control panel
  • In the control panel select "Appearance" and then "Theme Tweaks".
  • Under Theme tweaks, scroll down.

There you will see settings for story right, story width, and tiddler width. By setting these numbers to something larger, you can widen the tiddlers. In general, story right and story width should be the same size, and tiddler width a little bit smaller. You could even use percentages for tiddler width. You will also probably want to change the sidebar breakpoint to something larger than the story river, unless you don't mind the sidebar floating to the top of the page.

HTML Block Elements

 18 août 2022 à 10h21

HTML (Hypertext Markup Language) elements historically were categorized as either "block-level" elements or "inline-level" elements. Since this is a presentational characteristic it is nowadays specified by CSS in the Flow Layout. A Block-level element occupies the entire horizontal space of its parent element (container), and vertical space equal to the height of its contents, thereby creating a "block".

https://developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements

HTML Entities

 25 octobre 2022 à 13h46

Summary

Use HTML entities to enter characters that cannot easily be typed on an ordinary keyboard. They take the form of an ampersand (&), an identifying string, and a terminating semi-colon (;), e.g. &amp; for the & character.

Markup

The value of Tiddlers&trade; cannot even be expressed in &pound;, &euro; or &dollar;.

Displays as:

The value of Tiddlers™ cannot even be expressed in £, € or $.

Entity References

Comprehensive lists of html entities can be found at...

Examples Of Common And Useful Entities

HTML Entities
&nbsp; no-break space  &apos;'single quote, apostrophe
&ndash;en dash&quot;"quotation mark
&mdash;em dash&prime;prime; minutes; feet
&hellip; horizontal ellipsis&Prime;double prime; seconds; inches
&copy;©Copyright symbol&lsquo;left single quote
&reg;®Registered symbol&rsquo;right single quote
&trade;Trademark symbol&ldquo;left double quote
&dagger;dagger&rdquo;right double quote
&Dagger;double dagger&laquo;«left angle quote
&para;paragraph sign&raquo;»right angle quote
&sect;§section sign&times;×multiplication symbol
&uarr;up arrow&darr;down arrow
&larr;left arrow&rarr;right arrow
&lArr;double left arrow&rArr;double right arrow
&harr;left right arrow&hArr;double left right arrow

Accented Characters

The table below shows how accented characters can be built up by substituting the underscore (_) in the second table into the corresponding character. eg:

CodeCharacterExampleResult
&Auml;Ä&Auml;pfelÄpfel
Accented Characters
grave accent&_grave;ÀàÈèÌìÒòÙù      
acute accent&_acute;ÁáÉéÍíÓóÚú  Ýý  
circumflex accent&_circ;ÂâÊêÎîÔôÛû      
umlaut mark&_uml;ÄäËëÏïÖöÜü  Ÿÿ  
tilde&_tilde;Ãã    Õõ  Ññ    
ring&_ring;Åå              
slash&_slash;      Øø        
cedilla&_cedil;              Çç

HTML dans le WikiTexte

 27 février 2022 à 2h04

Balises HTML et commentaires

Les balises et les commentaires HTML peuvent être utilisées directement en WikiTexte. Par exemple :

<article class='hello'>
Ceci est un simple bloc de texte. HelloThere
<!-- Ce commentaire n'apparaîtra pas. -->
</article>

Remarque
Par conséquent, un mot écrit entre "chevrons" < > sera interprété comme une balise HTML, ce qui peut entraîner des effets de bord (notamment à cause de l'inexistence de la balise fermante).
À la place, mieux vaut utiliser le code HTML des caractères "chevrons" : &lt; et &gt;

Commentaires Pragma

Depuis : 5.2.0 Les commentaires peuvent maintenant être librement entremêlés avec les pragmas ou bien à l'intérieur du corps d'un bloc de wikitexte.

<!-- NOUVEAU ! : Commentaire qui décrit la macro -->
\define test()
Un peu de texte <!-- commentaire en ligne -->
\end

<<test>>

Important

Les Widgets utilisent la même syntaxe que les balises HTML, donc les informations suivantes s'appliquent aussi à eux.

Mode bloc ou mode texte ?

Pour que le contenu d'un élément HTML soit interprété en mode bloc, la balise ouvrante doit être suivie par deux retours à la ligne.

Sans les deux retours à la ligne, le contenu des balises sera interprété en mode texte, ce qui signifie que les formatages de mode bloc tels que les tableaux, les listes et les titres ne seront pas reconnus.

Voir aussi Modes d'analyse du WikiTexte : exemples de HTML et Changements de mode d'analyse du WikiTexte.

Éléments auto-fermants

Les balises suivantes sont traitées comme si elles étaient vides, ce qui signifie que <balise> est traitée comme si c'était <balise/>, et qu'aucune balise de fermeture </balise> n'est nécessaire. Mais si la balise fermante existe elle est ignorée et traitée comme du texte.

  • <area>, <base>, <br>, <col>, <command>, <embed>, <hr>, <img>, <input>, <keygen>, <link>, <meta>, <param>, <source>, <track>, <wbr>

Si vous ne fermez pas n'importe quelle autre balise HTML, TiddlyWiki se comportera comme si les balises manquantes étaient déportées à la fin du tiddler.

Attributs

Par extension à la syntaxe conventionnelle HTML, les attributs des éléments ou widgets peuvent être écrits de différentes façons :

Valeurs littérales d'attributs

Les valeurs littérales d'attribut peuvent utiliser différents styles de ponctuation :

  • Guillemets simples (c-à-d attribut='valeur')
  • Guillemets doubles (c-à-d attribut="valeur")
  • Triples guillemets doubles (c-à-d attribut="""valeur""")
  • Aucune ponctuation n'est nécessaire pour les valeurs qui ne contiennent pas d'espace (c-à-d attribut=valeur)

Les valeurs littérales d'attribut peuvent contenir des retours à la ligne. Par exemple :

<div data-address="Maison Souris,
3 rue des rongeurs,
Ratville"/>

L'utilisation des triples guillemets doubles """ permet de spécifier des valeurs d'attributs qui contiennent des caractères "guillemet double" :

<div data-address="""Maison "Souris",
3 rue des rongeurs,
Ratville"""/>

Valeurs d'attributs par transclusion

Les valeurs d'attributs par transclusion sont encadrées par des doubles accolades autour d'une Référence texte, par exemple :

attr={{tiddler}}
attr={{!!field}}
attr={{tiddler!!field}}

La valeur de l'attribut sera le résultat exact de la transclusion, sans aucune interprétation supplémentaire de WikiTexte. Toute syntaxe de wiki dans ce résultat sera laissée en l'état.

Valeur d'attribut par variable

Les valeurs d'attributs par variable sont encadrées par des doubles crochets autour d'un appel de macro, par exemple :

<div title=<<MaMacro "Jacques">>>
...
</div>

Le texte de la définition de la macro est retrouvé et la substitution des arguments a lieu (c-à-d la syntaxe $param$ et $(...)$). Le texte résultant est affecté à la valeur de l'attribut. Toute syntaxe wiki dans ce texte, y-compris d'autres appels de macros ou des références de variables, sera laissée en l'état.

Valeurs d'attributs par filtre

Les valeurs d'attributs par filtre sont encadrées par des accolades triples autour d'une expression de filtre. Le premier élément de la liste renvoyée par le filtre est affecté à l'attribut, ou une chaîne vide si la liste est vide.

Cet exemple montre comment ajouter un préfixe à une valeur :

<$text text={{{ [<currentTiddler>addprefix[$:/myprefix/]] }}} />

La valeur de l'attribut sera le résultat exact du premier élément de la liste renvoyée par le filtre, sans aucune interprétation du WikiTexte. Toute syntaxe de wiki dans ce résultat sera laissée telle quelle.

HTML Links in WikiText

 21 octobre 2016 à 11h20

It is often useful to be able to create HTML links to external resources. For example, here the value of the href attribute will be set to the value of the tiddler MyLinkDestination:

<a href={{MyLinkDestination}}>link</a>

However, there is an unexpected security issue that means that most of the time the link should have the rel attribute set to noopener noreferrer to maintain privacy of the URLs of private TiddlyWiki's (eg on Dropbox). See https://mathiasbynens.github.io/rel-noopener/ for more information.

<a href={{MyLinkDestination}} rel="noopener noreferrer">link</a>

HTML, Langage Marquage HyperTexte

 23 juin 2015 à 8h35

HTML is a standard plain-text format used for defining the content of a web page.

It consists of a tree of elements expressed using a system of special tags enclosed in angle brackets.

Almost the whole of HTML can be used unchanged in the WikiText of a tiddler.

Icon Gallery

 18 octobre 2021 à 11h23

Click an icon to copy the title to the clipboard

image-picker Macro

 18 avril 2016 à 16h58

The image-picker macro displays an interactive image picker, as can be seen in the core text editor.

Parameters

actions
Wikitext for the action widgets that should be executed when the user selects an image. Within the text, the variable imageTitle contains the title of the tiddler containing the selected image.
subfilter
An optional extra filter step, e.g. tag[MyTag]

The images are selected by means of a filter expression, into which the subfilter parameter is spliced as follows:

[all[shadows+tiddlers]is[image]$subfilter$!has[draft.of]] -[type[application/pdf]] +[sort[title]]

Exemples

image-picker Macro (Example 1)

 16 novembre 2021 à 3h50

Image:


image-picker Macro (Example 2)

 16 novembre 2021 à 3h51

Image:


image-picker Macro (Examples)

 18 avril 2016 à 16h56

Image: <$edit-text tiddler='$:/_MyImage' tag='input' placeholder='(unset)' default=''/>

<$transclude tiddler={{$:/_MyImage}}/>

---

<$macrocall $name='image-picker' actions="

<$action-setfield $tiddler='$:/_MyImage' $value=<<imageTitle>>/>

"/>

This next example shows how the subfilter parameter limits the list of images (here to those with the "Language" prefix):

Image: <$edit-text tiddler='$:/_MyImage' tag='input' placeholder='(unset)' default=''/>

<$transclude tiddler={{$:/_MyImage}}/>

---

<$macrocall $name='image-picker' actions="

<$action-setfield $tiddler='$:/_MyImage' $value=<<imageTitle>>/>

" subfilter="prefix[Language]"/>

Exemple de galerie d'images

 24 juin 2015 à 10h22

Voici un exemple d'utilisation des widgets List et Transclude pour afficher une grille de toutes les images système (autrement dit, les tiddlers tagués avec $:/tags/Image).

Images en WikiTexte

 4 mars 2022 à 13h27

Intégration d'image

Les images peuvent être affichées avec la syntaxe WikiTexte suivante, selon que l'image soit déjà incluse dans un tiddler ou pointe vers une source externe :

[img[Motovun Jack.jpg]] 
ou [img[https://tiddlywiki.com/favicon.ico]]

Il est également possible d'insérer des tiddlers d'images grâce à la barre d'outils d'édition. Cliquez sur Image () et choisissez une image.

Si la source de l'image correspond au titre d'un tiddler, alors le tiddler est affiché directement. Autrement elle est interprétée comme une URL et la balise HTML <img> est générée avec l'URL dans l'attribut src.

Une info-bulle, visible au survol par la souris, peut être ajoutée :

[img[Et voilà l'info-bulle|Motovun Jack.jpg]]

Les attributs width (largeur) et height (hauteur) ainsi que class pour les classes CSS sont disponibles :

[img width=32 [Motovun Jack.jpg]]
[img width=32 class="tc-image" [Motovun Jack.jpg]]

Notez que les attributs peuvent être spécifiés par des transclusions ou des références à des variables :

[img width={{!!ma_largeur}} class=<<image-classes>> [Motovun Jack.jpg]]

La syntaxe d'image est un raccourci d'appel au Widget Image.

Affichage des images par transclusion

Vous pouvez aussi afficher l'image incluse dans un tiddler en transcluant ce tiddler. L'inconvénient de cette méthode est qu'il n'y a alors pas de moyen direct pour contrôler la taille de l'image.

{{Motovun Jack.jpg}}

Affichera :

Images en lien

<$link to="HelloThere" tooltip="Info-bulle personnalisée">{{$:/core/icon}}</$link>

Affichera :

Import d'images

Utilisez le bouton importer (dans l'onglet de la barre latérale), ou directement un glisser-déposer pour importer une image. Voir les détails ici : Importer des tiddlers

Depuis : 5.2.0 Vous pouvez aussi importer des images par copier-coller ou glisser-déposer dans l'éditeur de tiddler.

Widget Image

 3 mars 2022 à 23h56

Introduction

Le widget image affiche des images qui peuvent être désignées par une URL distante ou le titre d'un tiddler local qui contient l'image.

Contenu et attributs

Le contenu du widget <$image> est ignoré.

AttributDescription
sourceL'URL de l'image, ou le titre d'un tiddler image
widthLa largeur de l'image
heightLa hauteur de l'image
tooltipL'info-bulle à afficher au survol de l'image
altLe texte alternatif associé à l'image
classLes classes CSS à assigner à l'élément <img>

La valeur de la largeur et de la hauteur peut être attribuée en pixels (c-à-d "23" ou "23px") ou en pourcentages (c-à-d "23%"). Ces deux attributs sont optionnels et s'ils sont absents le navigateur utilisera des règles CSS pour retailler l'image.

Images externes et champ _canonical_uri

Lorsqu'il est utilisé pour afficher des images contenues dans des tiddlers, le widget opère dans deux modes distincts :

  • Si le champ _canonical_uri est présent, il est utilisé en tant qu'attribut src de la balise <img> générée et le champ text est ignoré.
  • En l'absence du champ _canonical_uri, le widget image génère une balise <img> qui encode les données de l'image directement dans une URI de type data:.

Plus de détails ici : Images externes.

ImportCommand

 12 juillet 2017 à 16h38

Importe des tiddlers depuis des fichiers locaux TiddlyWiki (.html), .tiddler, .tid, .json ou autres. Le désérialiseur doit être spécifié explicitement, à la différence de la commande load qui déduit le désérialiseur à utiliser à partir de l'extension du fichier.

--import <chemin-du-fichier> <désérialiseur> [<titre>] [<encodage>]

Les principaux désérialiseurs présents par défaut sont :

  • application/javascript
  • application/json
  • application/x-tiddler
  • application/x-tiddler-html-div
  • application/x-tiddlers
  • text/html
  • text/plain

S'il n'est pas spécifié, le titre du tiddler importé a pour valeur le nom du fichier.

L'encodage par défaut est "utf8", mais peut valoir "base64" en cas d'importation des fichiers binaires.

À noter que TiddlyWiki refusera d'importer pas une version plus ancienne d'un plugin déjà chargé.

Importer des tiddlers

 22 février 2022 à 17h32

Vous pouvez importer des tiddlers dans un TiddlyWiki à partir de fichiers externes ou directement depuis un autre TiddlyWiki.

Importer du contenu de fichiers externes

Il existe plusieurs méthodes pour importer du contenu (tel que du texte, des images, des documents pdf, etc.) à partir de fichiers externes :

  • Utiliser le bouton Importer (dans l'onglet Outils de la barre latérale) pour choisir un fichier ;
  • Gisser-déposer des fichiers depuis l'Explorateur Windows, ou le Finder MacOS, etc. directement dans la fenêtre de navigateur de TiddlyWiki ;
  • Copier-coller du contenu directement depuis le presse-papiers en utilisant le menu ou le raccourci clavier (ctrl-V ou cmd-V)
    • Actuellement disponible avec Chrome, Firefox et Edge (mais pas Internet Explorer)

Pour la plupart, les fichiers sont importés en tant que tiddlers individuels. Les exceptions sont :

  • les fichiers .html qui sont reconnus comme des fichiers TiddlyWiki sont interprétés pour en extraire les tiddlers qu'ils contiennent ;
  • les fichiers .json sont interprétés pour en extraire les tiddlers qu'ils contiennent. Ils peuvent être créés en les exportant d'un autre TiddlyWiki. TiddlyWiki reconnaît les fichiers JSON qui contiennent un unique tiddler, ou un tableau de tiddlers.

Importer du contenu depuis des TiddlyWiki dans d'autres fenêtres

Les tiddlers peuvent être importés depuis des TiddlyWiki affichés dans d'autres fenêtres de navigateurs grâce au glisser-déposer. Faites glisser un lien interne TiddlyWiki ou un tag d'un TiddlyWiki à un autre, entre fenêtres de navigateurs. Faire glisser un lien interne importera un tiddler unique, alors que faire glisser une pilule de tag importera tous les tiddlers qui portent ce tag.

ImportVariablesWidget

 28 septembre 2018 à 16h00

Introduction

The ImportVariablesWidget imports macro and variable definitions from a list of other tiddlers and makes them available to its children. For example:

<$importvariables filter="[tag[mySpecialMacros]]">
All the macros defined in tiddlers with the tag "mySpecialMacros" are available here
</$importvariables>

Attributes and Content

The content of the importvariables widget is the scope within which the imported variable definitions are available.

AttributeDescription
filterTiddler filter defining the tiddlers from which macro definitions will be imported

Global Macros

So-called global macros are implemented within the main page template ($:/core/ui/PageTemplate) by wrapping the page content in the following importvariables widget:

<$importvariables filter="[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]">
...
</$importvariables>

\import Pragma

Depuis : 5.1.18 The Pragma: \import is an alternative syntax for using the ImportVariablesWidget. For example, the previous example could be expressed as:

\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]

Améliorer la documentation de TiddlyWiki

 23 juin 2015 à 7h31

(NB : si vous souhaitez travailler sur la traduction française, reportez-vous plutôt aux infos traducteurs.)

N'importe qui peut proposer des améliorations à la documentation TiddlyWiki présente sur https://tiddlywiki.com :

  1. Lisez et suivez le Manuel de style pour la documentation TiddlyWiki
  2. Si vous n'en n'avez pas déjà un, créez un compte sur https://github.com
  3. Sur https://tiddlywiki.com, cliquez sur le bouton "edit" du tiddler que vous souhaitez améliorer
  4. Vous devriez voir un bandeau rose avec le texte suivant : Pouvez-vous nous aider à améliorer cette documentation ? Voyez comment éditer ce tiddler sur GitHub.
  5. Cliquez sur le lien externe ...ce tiddler sur GitHub
    1. Une alerte va s'afficher comme quoi « you need to fork this repository to propose changes » (« vous devez cloner ce répertoire avant de pouvoir proposer des modifications »). Un fork est votre propre exemplaire du répertoire, qui intègrera les modifications que vous proposez
  6. Un nouvel onglet devrait s'ouvrir sur votre navigateur, pour permettre d'éditer le tiddler sur github.com. La dernière vidéo montre le contenu attendu dans cette zone.
  7. Sous la boîte d'édition du texte du tiddler, vous devriez voir une boîte indiquant Propose file change
  8. Entrez un titre bref expliquant la modification (par ex., "Clarifier l'instabilité de la syntaxe des attributs")
  9. Si nécessaire, entrez également une description plus détaillée
  10. Cliquez sur le bouton vert intitulé Propose file change
  11. Sur l'écran suivant, cliquez sur le bouton vert intitulé Create pull request

Jermolene ou l'un des autres développeurs principaux sera alors en mesure de fusionner votre pull request de façon à l'intégrer à la prochaine version de https://tiddlywiki.com.

Mario Pietsch a créé pour vous ces tutoriels vidéos :

IndexedDB Plugin by Andreas Abeck

 6 janvier 2021 à 15h10

A plugin that allows changes to be synchronised with the IndexedDB database that is built-in to most browsers.

http://tw5-dev.cibm.de

Being quite new to TW5 development I tried my best to draft a SyncAdaptor to store tiddlers in IndexedDb. This is quite useful if an application / plugin installation is not possible (we have quite some restrictions at work...).

indexes Operator

 29 décembre 2022 à 9h42
purposeselect all data properties of the input titles
inputa selection of titles
parameternone
outputall the property names or indices contained in the input data tiddlers

Learn more about how to use Filters

Each input title is processed in turn, and is ignored if it does not denote a data tiddler. The sorted list of property names is retrieved from the data tiddler and then dominantly appended to the operator's output.

Note that behind the scenes, the name/value pairs in a dictionary tiddler are represented as a JSON object. JSON objects do not maintain a guaranteed ordering and so we cannot reliably retain the ordering of the data in the file.

Where the content of a tiddler is in JSON format with an array as its root, the indexes operator retrieves a selection of integer indices instead.

Examples

indexes Operator (Examples)

 19 janvier 2015 à 19h10

[{$:/palette}indexes[]sort[title]]
→ all the colours defined in the current colour palette

[[$:/HistoryList]indexes[]]
→ integer output because the history list is an array

InfoMechanism

 24 novembre 2020 à 18h58

System tiddlers in the namespace $:/info/ are used to expose information about the system (including the current browser) so that WikiText applications can adapt themselves to available features.

Information Tiddlers

TitleDescription
$:/info/startup-timestamp Depuis : 5.1.23 Startup timestamp in TiddlyWiki date format
$:/info/browserRunning in the browser? ("yes" or "no")
$:/info/mobile Depuis : 5.2.3 Is running on a mobile device? ("yes" or "no" - eg, )
$:/info/browser/language Depuis : 5.1.20 Language as reported by browser (note that some browsers report two character codes such as en while others report full codes such as en-GB)
$:/info/browser/screen/widthScreen width in pixels
$:/info/browser/screen/heightScreen height in pixels
$:/info/nodeRunning under Node.js? ("yes" or "no")
$:/info/url/full Depuis : 5.1.14 Full URL of wiki (eg, )
$:/info/url/host Depuis : 5.1.14 Host portion of URL of wiki (eg, )
$:/info/url/hostname Depuis : 5.1.14 Hostname portion of URL of wiki (eg, )
$:/info/url/origin Depuis : 5.1.14 Origin portion of URL of wiki (eg, )
$:/info/url/pathname Depuis : 5.1.14 Pathname portion of URL of wiki (eg, )
$:/info/url/port Depuis : 5.1.14 Port portion of URL of wiki (eg, )
$:/info/url/protocol Depuis : 5.1.14 Protocol portion of URL of wiki (eg, )
$:/info/url/search Depuis : 5.1.14 Search portion of URL of wiki (eg, )
$:/info/darkmode Depuis : 5.1.23 Is dark mode enabled? ("yes" or "no")

Panneau d'information

 22 juin 2015 à 12h03

Chaque tiddler a un panneau d'informations additionnelles. Pour l'afficher, cliquez dans la barre d'outils du tiddler, sur l'icone, puis sur info dans la liste déroulante.

Le panneau d'information comporte les onglets suivants :

  • Outils - propose des boutons pour diverses actions à effectuer sur un tiddler. Cocher la case en regard de chaque bouton l'ajoutera dans la barre d'outils du tiddler - Ceci affectera tous les tiddlers de votre wiki.
  • Références, Étiqueté, Liste et Listé - Listent différents types de tiddlers connexes. Voir Utiliser des liens pour naviguer entre les tiddlers
  • Champs - récapitule tous les champs du tiddler, hormis le champ text
  • Avancé - indique si le tiddler est shadow. S'il l'est, mentionne aussi quel plugin le génère et s'il a été remplacé par un tiddler ordinaire.

Pour fermer le panneau d'information, cliquez n'importe où ailleurs.

Informations pour les traducteurs

 18 décembre 2014 à 21h24

Pour contribuer à cette traduction de la documentation tiddlywiki.com, commencez par repérer sur fr-edition.tiddlyspot.com quelques tiddlers non traduits, pas mis à jour, voire mal traduits. Évitez seulement ceux qui sont tagués en cours car comme leur tag l'indique, ils ont été réservés. Ensuite :

  • si vous travaillez en mode Node.js sur un clone git de l'édition fr-FR, vous pouvez traduire à partir de votre clone en respectant les quelques indications ci-dessous, puis proposer un pull request sur GitHub en vous aidant si besoin de la documentation
  • sinon, traduisez directement, soit en ligne, soit sur une sauvegarde du site (c'est plus prudent). Puis :
    • exportez votre travail dans un fichier JSON
    • envoyez ce fichier à une personne susceptible d'effectuer un pull request sur GitHub, ou directement sur la liste de diffusion.

Nous ne disposons pas encore de mécanismes très évolués pour gérer le travail de traduction en parallèle, donc ne gardez pas vos traductions sous le coude trop longtemps : il vaut mieux envoyer un tiddler à la fois que s'apercevoir trop tard que quelqu'un d'autre l'a traduit en parallèle.

Les titres des tiddlers sont conservés en anglais
de sorte que les tiddlers traduits soient écrasent la version d'origine au moment d'être servis, et que les références croisées soient maintenues. Pour faire apparaître les titres traduits, utilisez le champ fr-title, ainsi que le paramètre de libellé dans les liens wikitext.
Pour disposer d'un libellé réduit, utile pour les onglets notamment, vous pouvez aussi traduire le champ caption.
Un glossaire est en cours de constitution
Si vous suivez ses propositions, cela augmentera la cohérence de notre traduction. N'hésitez pas à le compléter ou à le critiquer publiquement !
Quelques raccourcis sont à votre disposition
sous forme de macros dans le tiddler $:/editions/fr-FR/util-macros. Ils facilitent la saisie des chaînes de caractères typiquement françaises (comme les « guillemets », mais aussi de mots fréquents (comme TiddlyWiki) ou compliqués comme LaTeX (qui a sa propre feuille de style). N'hésitez pas à en ajouter !

InitCommand

 17 juin 2014 à 22h25

Initialise un dossier wiki (WikiFolder) vide en copiant l'une des éditions présentes dans le répertoire editions.

--init <édition> [<édition> ...]

Par exemple :

tiddlywiki ./MonDossierWiki --init empty

Note :

  • Le répertoire correspondant au dossier wiki est créé si nécessaire
  • L'édition par défaut est empty
  • La commande init échoue si le dossier wiki n'est pas vide
  • La commande init supprime les éventuelles définitions includeWikis du fichier tiddlywiki.info de l'édition spécifiée
  • Lorsque plusieurs éditions sont spécifiées, chaque édition écrase les fichiers qu'elle a en commun avec les précédentes (par conséquent, le fichier tiddlywiki.info proviendra de la dernière édition spécifiée)
  • --editions renvoie une liste des éditions disponibles

See also:

WikiTexte en mode « en ligne »

 22 avril 2022 à h10

Une partie du WikiTexte n'est reconnue que quand l'interpréteur est en mode « en ligne ».

Ces expressions en WikiTexte n'ont pas besoin d'occuper toute une ligne de texte. Elles n'ont pas besoin non plus de tenir en entier sur une seule ligne, mais peuvent couvrir une ligne complète. De ce fait, plusieurs de ces expressions peuvent apparaître au sein de la même ligne. En d'autres termes, les fins de lignes ne sont pas prises en compte quand l'interpréteur cherche à trouver le début et la fin de ces expressions WikiTexte. Quand l'interpréteur est en mode « en ligne », il reconnaît les syntaxes des expressions WikiTexte suivantes :

Un appel de macro ou une transclusion en WikiTexte sont reconnus en mode bloc si l'appel de macro ou la transclusion occupent une ligne complète.

Techniquement, les autres expressions WikiTexte en mode en ligne ne sont reconnues que quand l'interpréteur est en mode en ligne. Toutefois, leurs balises d'ouverture vont déclencher le début d'un paragraphe, ce qui va automatiquement faire basculer l'interpréteur en mode en ligne. De ce fait, en pratique il est aussi simple de considérer que ces expressions sont reconnues par l'interpréteur aussi bien en mode bloc qu'en mode en ligne.

Pendant le traitement du texte inclus dans certaines de ces expressions WikiTexte, l'interpréteur ignorera les syntaxes WikiTexte. Mais pour le reste de ces expressions WikiTexte, l'interpréteur continuera l'analyse en mode en ligne du texte inclus, ce qui peut l'amener à rencontrer un contenu qui le fait basculer en mode bloc.

Innerwiki Plugin

 27 janvier 2019 à 10h41

The Innerwiki Plugin enables TiddlyWiki to embed a modified copy of itself (an "innerwiki"). The primary motivation is to be able to produce screenshot illustrations that are automatically up-to-date with the appearance of TiddlyWiki as it changes over time, or to produce the same screenshot in different languages.

In the browser, innerwikis are displayed as an embedded iframe. Under Node.js Google's Puppeteer is used to load the innerwikis as off-screen web pages and then snapshot them as a PNG image.

See the demo at https://tiddlywiki.com/plugins/tiddlywiki/innerwiki

Insert link

 17 août 2016 à 11h57

This will give you a dialog to search for and pick existing tiddlers in the wiki. When you pick a tiddler it will be inserted as a WikiText link where the cursor is in the text field.

Pressing will give you [[Some link]]

It wil not insert: external web links or picture links.

Insert picture

 17 août 2016 à 12h02

This will give you a dialog to search for and pick existing image tiddlers in the wiki. When you pick a tiddler it will be inserted as a WikiText image link where the cursor is in the text field.

Pressing will give you [img[$:/favicon.ico]]

insertafter Operator

 23 février 2022 à h44
purposeinsert an item T into a list immediately after an item A
inputa selection of titles
suffix(optional) the name of a variable containing the title of the tiddler after which this one should be inserted
parameterthe insertafter operator accepts 1 or 2 parameters, see below for details
outputthe input tiddler list with the new entry inserted

Learn more about how to use Filters

Depuis : 5.2.3

The insertafter operator requires at least one parameter which specifies the title to insert into the input list. A second parameter can be used to specify the title after which the new title should be inserted.

A suffix can also be used to specify A, the title after which the new title should be inserted, but this form is deprecated. Instead, the two-parameter form is recommended. If the two-parameter form is used, the suffixes start and end can be used to specify where the item should be inserted if A is not found.

insertafter:<after-title-variable>[<title>]
insertafter:<missing-location>[<title>],[<after-title>]
  • title : a title T to insert in the input list.
  • after-title : (optional). Insert T after this title A in the input list.
  • after-title-variable : (optional). The name of a variable specifying A instead of the after-title parameter.
  • missing-location : (optional). Either start or end: where to insert T if A is not found in the list.

If the item A isn't present in the input list then the new item is inserted at the end of the list. Depuis : 5.2.3 The suffixes start and end can be spedified to control where the new item is inserted when A is not found. The suffix end is the default, inserting the new item at the end of the list. The suffix start will cause the new item to be inserted at the start of the list when A is not found.

Either parameter can be a string, a text reference or a variable

If A is specified as both a suffix and a parameter, the parameter takes precedence

Examples

insertafter Operator (Examples)

 23 février 2022 à h44

These examples use the following predefined variables:

  • after-title: Friday
  • missing-title: Yesterday

[list[Days of the Week]insertafter[Today]]

[list[Days of the Week]insertafter[Today],[Tuesday]]

[list[Days of the Week]insertafter[Today],<after-title>]

[list[Days of the Week]insertafter:after-title[Today]]

[list[Days of the Week]insertafter[Today],<missing-title>]

[list[Days of the Week]insertafter:missing-title[Today]]

insertbefore Operator

 23 février 2022 à h44
purposeinsert an item T into a list immediately before an item B
inputa selection of titles
suffix Depuis : 5.2.3 (optional) the name of a variable containing the title of the tiddler before which this one should be inserted
parameter Depuis : 5.2.2 the insertbefore operator accepts 1 or 2 parameters, see below for details
outputthe input tiddler list with the new entry inserted

Learn more about how to use Filters

Depuis : 5.2.2

The insertbefore operator requires at least one parameter which specifies the title to insert into the input list. A second parameter can be used to specify the title before which the new title should be inserted.

Depuis : 5.2.3

Using the suffix to specify B, the title before which the new title should be inserted, is deprecated. Instead, the two-parameter form is recommended. If the two-parameter form is used, the suffixes start and end can be used to specify where the item should be inserted if B is not found.

insertbefore:<before-title-variable>[<title>]
insertbefore:<missing-location>[<title>],[<before-title>]
  • title : a title T to insert in the input list.
  • before-title : (optional). Insert T before this title B in the input list.
  • before-title-variable : (optional). The name of a variable specifying B instead of the before-title parameter.
  • missing-location : (optional). Either start or end: where to insert T if B is not found in the list.

If the item B isn't present in the input list then the new item is inserted at the end of the list. Depuis : 5.2.3 The suffixes start and end can be spedified to control where the new item is inserted when B is not found. The suffix end is the default, inserting the new item at the end of the list. The suffix start will cause the new item to be inserted at the start of the list when B is not found.

Either parameter can be a string, a text reference or a variable

If B is specified as both a suffix and a parameter, the parameter takes precedence

Examples

insertbefore Operator (Examples)

 23 février 2022 à h44

These examples use the following predefined variables:

  • before-title: Friday
  • missing-title: Yesterday

[list[Days of the Week]insertbefore[Today]]

[list[Days of the Week]insertbefore[Today],[Tuesday]]

[list[Days of the Week]insertbefore[Today],<before-title>]

[list[Days of the Week]insertbefore:before-title[Today]]

[list[Days of the Week]insertbefore[Today],<missing-title>]

[list[Days of the Week]insertbefore:missing-title[Today]]

Installing a plugin from the plugin library

 17 juin 2022 à 13h21

If you want to follow the steps side by side you can .

Follow these instructions when using TiddlyWiki as a standalone, single file wiki.

  1. Open your TiddlyWiki in a browser
  2. Create a backup of your current wiki file (just in case)
  3. Open the
    • Click on the Plugins tab and then the
    • Get more plugins button
  4. Click open plugin library to open the official plugin library
  5. When the library listing is loaded:
    1. Use the tab to select between plugins, themes and languages
    2. Use the search box to search the plugin details
  6. Click the install button to install a plugin
  7. Save your TiddlyWiki
  8. If a yellow warning bar appears at the top of the window, refresh the window so that TiddlyWiki completes installation of the plugin
    • Depuis : 5.1.22 It is no longer necessary to refresh TiddlyWiki when deleting plugins that support dynamic loading. See the PluginMechanism for more details
  9. The plugin should now be available for use
Note
If you use TiddlyWiki with Node.js have a closer look at Installing official plugins on Node.js
An overview can be found at Plugins

Installing custom plugins on Node.js

 17 juin 2022 à 14h01

Introduction

There are several ways in which official plugins and custom plugins can be installed when using TiddlyWiki with a Node.js client-server configuration.

Note
For instructions on installing plugins from libraries to single-file wikis learn more at Plugins.

Plugin Load Order

Using the Node.js client-server configuration plugins are activated in the following order:

  1. Plugins found using the OS environment variables
  2. Plugins stored in the wiki /plugins path
  3. Plugins specified in the command line
  4. Plugins imported by drag and drop as wiki content

Important:

  • Elements lower in the list take precedence
  • Including a plugin as an ordinary tiddler by drag and drop into the browser, will result in the plugin only being active in the browser
    • It will not be available under Node.js

Option 1:

  • Using a Node.js configuration option 1 is the most common one
  • It lowers maintenence, because all plugins can be updated in one go

Option 2:

  • Option 2 is preferred if you want to work with a fixed configuration
  • Plugin updates only effect the corresponding wiki

Option 3:

  • This option allows to add and start an edition without the need to overwrite an existing tiddlywiki.info file
  • It allows you to start any edition as a client-server edition, even if the tiddlywiki.info file didn't specify it.

Option 4:

  • Is the exact same mechanism used for a single-file wiki
  • This mechanism should only be used in a Node.js configuration for testing and debugging purposes, since the plugins are stored in the tiddlers/ directory

Installing official plugins on Node.js

 17 juin 2022 à 14h23

Follow these instructions when using TiddlyWiki with a client-server Node.js configuration:

  1. Identify the plugins you want to install using the Plugins tab of (don't install the plugins from here, though)
    • Plugins are identified by their type (ie language, theme or plugin) and their publisher and title. For example, the plugin $:/plugins/tiddlywiki/internals is referred to as tiddlywiki/internals
  2. Quit the server if it is running
  3. Edit the tiddlywiki.info file (it is in JSON format) and locate the plugins, themes or languages section (see below)
  4. Add entries corresponding to the plugins you wish to add
    • Take care to retain commas to separate items
    • Do not terminate the last item in a list with a comma
  5. Restart the server
{
	"plugins": [
		"tiddlywiki/codemirror"
	],
	"themes": [
		"tiddlywiki/vanilla",
		"tiddlywiki/snowwhite"
	],
    "languages": [
        "es-ES",
        "fr-FR",
        "en-EN"
    ]
}
Note
An overview of working with plugins can be found at Plugins.
Also see: Installing custom plugins on Node.js.

Installer TiddlyWiki sur Microsoft Internet Information Server

 2 avril 2022 à 11h58

Internet Information Server (IIS) de Microsoft est le serveur web intégré de Windows. Il peut s'avérer utile d'héberger TiddlyWiki dans IIS afin de bénéficier des fonctionnalités de réécriture d'URL, d'hébergement de fichiers statiques ou de redémarrage automatique après un crash.

1. Activer IIS

  1. Dans la barre de recherche Windows, saisir « Activer ou désactiver les fonctionnalités Windows ».
  2. Cliquer sur l'icône « Activer ou désactiver les fonctionnalités Windows » qui apparaît dans les résultats de recherche.
  3. Cocher la case Internet Information Services (IIS) puis cliquer sur le bouton Ok.
  4. L'installation prend quelques minutes. Une fois terminée, cliquer sur le bouton Fermer

2. Installer les outils requis

  1. Installer le module IIS HttpPlatformHandler à partir de https://www.iis.net/downloads/microsoft/httpplatformhandler
  2. Installer Node.js à partir de https://nodejs.org/
  3. Installer Git à partir de https://git-scm.com/
    • optionnel ; uniquement nécessaire pour utiliser la dernière version de TiddlyWiki à partir de GitHub – voir ci-dessous

3. Installer TiddlyWiki et paramétrer un nouveau wiki

  1. Créer un répertoire approprié pour le wiki, par exemple C:\MesAffaires
  2. A l'intérieur, créer un fichier C:\MesAffaires\package.json contenant :
    {
        "name": "MesAffaires",
        "description": "La description de ce wiki",
        "dependencies": {
            "sax": "1.2.4",
            "tiddlywiki": "*"
        }
    }
  3. Créer un fichier C:\MesAffaires\web.config contenant :
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <system.webServer>
            <handlers>
                <add 
                    name="httpplatformhandler"
                    path="*"
                    verb="*"
                    modules="httpPlatformHandler"
                    resourceType="Unspecified"
                    requireAccess="Script" />
            </handlers>
            <httpPlatform 
               stdoutLogEnabled="true"
               stdoutLogFile=".\node.log"
               startupTimeLimit="20"
               processPath="C:\Program Files\nodejs\node.exe"
               arguments=".\node_modules\tiddlywiki\tiddlywiki.js ./wiki --listen port=PORT path-prefix=/MonAppli">
                <environmentVariables>
                    <environmentVariable name="PORT" value="%HTTP_PLATFORM_PORT%" />
                    <environmentVariable name="NODE_ENV" value="Production" />
                </environmentVariables>            
            </httpPlatform>
        </system.webServer>
    </configuration>
    
  4. Créer un sous-répertoire « wiki » : C:\MesAffaires\wiki
  5. A l'intérieur, créer un fichier C:\MesAffaires\wiki\tiddlywiki.info contenant :
    {
    	"description": "Mon wiki",
    	"plugins": [
    		"tiddlywiki/tiddlyweb",
    		"tiddlywiki/filesystem"
    	],
    	"themes": [
    		"tiddlywiki/vanilla",
    		"tiddlywiki/snowwhite"
    	]
    }
    
  6. Créer un sous-répertoire « tiddlers » : C:\MesAffaires\wiki\tiddlers
  7. A l'intérieur, créer un fichier C:\MesAffaires\wiki\tiddlers\config-tiddlyweb-host.tid contenant :
    title: $:/config/tiddlyweb/host
    text: $protocol$//$host$/MonAppli/
    
    • (Voir la documentation pour les détails des champs de configuration de HttpPlatformHandler)
  8. Exécuter la commande npm install depuis le répertoire C:/MesAffaires

4. Paramétrer l'application dans IIS

  • Dans la barre de recherche Windows, saisir « IIS » puis cliquer sur l'icone du « Gestionnaire des services internet (IIS) »
  • Localiser le serveur dans la colonne « Connexions » à gauche, et cliquer sur le triangle pour développer son contenu.
  • Ouvrir le dossier « Sites »
  • Faire un clic droit sur « Default Web Site » et sélectionner « Ajouter une application » dans le menu déroulant
  • Saisir les informations suivantes dans le formulaire :
    1. Alias : MonAppli
    2. Chemin physique : C:\MesAffaires
  • Cliquer sur OK

5. Tester l'application

Pour tester l'application, il suffit de visiter http://localhost/MonAppli/ avec un navigateur internet.

Notes

  • Si vous voulez de l'authentification, spécifiez un nom d'utilisateur et un mot de passe dans la commande --listen du fichier web.config. Par exemple :
    • arguments=".\node_modules\tiddlywiki\tiddlywiki.js ./wiki-server --listen username=jacques &quot;password=MonMotDePasse&quot; port=PORT path-prefix=/MonAppli">
    • Notez l'emploi des guillemets autour du mot de passe, sous forme de codes HTML : &quot;
  • Pour prendre en compte une modification des paramètres dans le fichier web.config ou une modification du code de l'application, vous devrez redémarrer le serveur IIS à l'aide du « Gestionnaire des services internet (IIS) »

Installer TiddlyWiki sur Node.js

 2 avril 2022 à 11h58
  1. Installez Node.js
    • Linux
      Debian/Ubuntu :
      apt install node.js
      Et éventuellement :
      apt install npm
      Arch Linux
      pacman -S tiddlywiki
      (installe node et tiddlywiki)
    • Mac
      brew install node
    • Android
    • Autres
  2. Ouvrez un terminal de ligne de commande et saisissez :
    npm install -g tiddlywiki
    En cas d'erreur, il faudra peut-être relancer la commande en tant qu'administrateur :
    sudo npm install -g tiddlywiki (Mac/Linux)
  3. Vérifiez que TiddlyWiki est bien installé en tapant :
    tiddlywiki --version
  4. En réponse, vous devriez voir TiddlyWiki renvoyer la version en cours (par exemple 5.3.2-prerelease ; d'autres informations de débogage peuvent aussi apparaître).
  5. Faites l'essai :
    1. tiddlywiki monnouveauwiki --init server pour créer un dossier pour un nouveau wiki qui inclura des composants orientés serveur
    2. tiddlywiki monnouveauwiki --listen pour démarrer TiddlyWiki
    3. Positionnez votre navigateur sur l'adresse http://127.0.0.1:8080/
    4. Essayez d'éditer et de créer de nouveaux tiddlers
  6. Eventuellement, créez une copie hors-ligne :
    • Cliquez sur le bouton Enregistrer les modifications de la barre latérale, OU
    • tiddlywiki monnouveauwiki --build index

L'option -g demande à Node.js d'installer TiddlyWiki globalement. Sans elle, TiddlyWiki sera disponible seulement dans le répertoire où vous l'avez installé.

Si vous utilisez Debian ou une distribution Linux dérivée de Debian et que vous recevez une erreur node: command not found alors que le paquet node.js est installé, vous devrez peut-être créer un lien symbolique entre nodejs et node. Consultez le manuel de votre distribution et de whereis pour créer un lien correctement. Voir le rapport d'erreur 1434 sur github.

Exemple pour Debian 8.0 : sudo ln -s /usr/bin/nodejs /usr/bin/node

Vous pouvez aussi installer d'anciennes versions de TiddlyWiki ainsi :

npm install -g tiddlywiki@5.1.13

Installing TiddlyWiki Prerelease on Node.js

 22 octobre 2019 à 10h55
  1. Clone a local copy of the TiddlyWiki5 GitHub repository from https://github.com/Jermolene/TiddlyWiki5
  2. Open a command line terminal and change the current working directory to the root of the TiddlyWiki5 repo
  3. Type npm link (Windows) or sudo npm link (Mac/Linux) to tell npm to use this copy of the repo as the globally installed one
  4. Inside the root, you can launch TiddlyWiki like this:
    tiddlywiki editions/tw5.com-server --listen

After this procedure you can work with TiddlyWiki5 via npm as though it had been installed in the usual way with npm install -g tiddlywiki.

Update the clone from time to time in order to ensure that you have the latest code.

Tiddlers d'apprentissage

 24 juin 2015 à 10h43

Les Tiddlers d'apprentissage s'adressent directement aux lecteurs et les guident à travers un processus. Le lecteur est aussi bien un débutant qu'un utilisateur moyen.

Ces tiddlers peuvent se subdiviser en :

Bienvenue
  • Qu'est-ce que TiddlyWiki et pourquoi m'en soucier?
  • Démonstration des points clés et avantages
  • Questions fréquemment posées
  • Exemples de TiddlyWiki en action
  • Information sur le projet lui-même
Tutoriel
  • Une présentation ordonnée de matériaux pour débutants
  • Chaque tiddler introduit une nouveauté ou un concept
  • Son contenu principal contient très peu de liens
  • Une section "En savoir plus" accessible à la fin peut proposer des liens connexes
Exercice
  • Accompagne un tiddler tutoriel
  • Solution obtenue sur demande
Comment ?
  • Une liste d'étapes numérotées pour effectuer une petite tâche spécifique
  • Concis, avec des liens vers les tiddlers référents si besoin
  • Toujours avec un préambule pour clarifier la nature de la tache
Exemple
  • Accompagne un tiddler référence
  • Peut contenir explications et commentaires similaires
  • Reste indépendant pour préserver la sobriété du tiddler référence

Les tiddlers d'apprentissage s'adressent directement au lecteur par l'emploie du "vous". Ils peuvent être raisonnablement cordiaux.

Mais ils évitent l'excès de langage académique, culturel, les références à l'actualité et les tentatives de l'humour,car ils peuvent dérouter ou même offenser le lectorat international. Ils évitent aussi de frustrer potentiellement le lecteur par des descriptions caractérisées de commodes ou faciles.

Interactive Git Documentation by Devin Weaver

 21 juin 2015 à 22h45

A git choose-your-own-adventure!ⓡ for walking yourself though fixing a broken Git repository.

http://sukima.github.io/GitFixUm/

This document is an attempt to be a fairly comprehensive guide to recovering from what you did not mean to do when using git. It isn't that git is so complicated that you need a large document to take care or your particular problem, it is more that the set of things that you might have done is so large that different techniques are needed depending on exactly what you have done and what you want to have happen.

Intersection Filter Run Prefix

 28 novembre 2021 à 21h29

Depuis : 5.1.23

purposefind the intersection of titles from previous runs with titles in this filter run
inputall titles from previous filter runs
outputthe titles that are present in both the result of this filter run and the output from previous runs

The filter output from previous runs is set aside. The :intersection filter run is started with all tiddler titles as input. Once this latest filter run has completed, the latest output is compared to the set-aside output. A new output is produced that contains only titles that appeared in both the set-aside output and the latest output.

Examples

Intersection Filter Run Prefix (Examples)

 28 novembre 2021 à 23h33

A B C D :intersection[enlist[C D E F]]

A B C D :intersection[enlist[A B C D]]

A B C D :intersection[enlist[E F G H]]

:intersection[enlist[A B C D]]
→ Using intersection in the first filter run is of little use. The result will always be empty.

Difference between + and :intersection

The + prefix should be thought of as an "AND" in formal logic, e.g. "give me all titles that satisfy condition A and condition B". But it's not suitable for all cases; if condition B uses a filter operator that replaces its input, then it will be difficult to use the + prefix. For example, if you wanted to find out what tags two tiddlers have in common, you might try to write a filter expression like:

But that won't work, because the second filter run will end up throwing away its input and replacing it with an input consisting of the single title [[compare Operator]]. So the result you'd get from that filter expression would be just the tags of the compare Operator tiddler.

For cases like this, the :intersection prefix is what you need. It takes the filter output so far, sets it aside, and starts the next filter run with all tiddler titles as input. Then once the latest filter run has completed, it takes the latest output, compares it to the set-aside output, and produces a new output that contains only titles that appeared in both the set-aside output and the latest output. So to get only the tags that the field Operator and compare Operator tiddlers have in common, you would write a filter expression like this:

The following examples use the field Operator and compare Operator tiddlers and their respective tags.

[[field Operator]tags[]]

[[compare Operator]tags[]]

[[field Operator]tags[]] +[[compare Operator]tags[]]
→ The "field Operator" tiddler's tags are lost, so only the "compare Operator" tiddler's tags are returned

[[field Operator]tags[]] :intersection[[compare Operator]tags[]]
→ Returns the tags that both tiddlers have in common

Vidéo d'introduction à TiddlyDesktop

 15 novembre 2014 à 22h53

Cette courte introduction montre comment installer et utiliser TiddlyDesktop :

Introduction à la rédaction d'un filtre

 21 juin 2015 à 10h46
Ceci décrit les bases de l'écriture d'un filtre de sélection d'un ensemble de tiddlers. Pour une présentation plus technique, voir Syntaxe d'un filtre.

Les filtres ne font rien par eux-même si vous vous contentez de les intégrer dans un tiddler. Il faut un contexte. Une manière facile d'expérimenter les filtres est de les saisir dans l'option Filtrer de l'onglet Recherche avancée.

Le plus simple des cas se présente lorsque vous savez exactement quels tiddlers vous recherchez. Saisissez chaque titre entre une paire de double crochets, un espace entre chacun :

[[Livre de recettes]] [[OeufsBrouillés]] [[Gateau aux pommes de moman]]

Vous pouvez omettre les crochets quand un titre ne contient aucun espace :

[[Livre de recettes]] OeufsBrouillés [[Gateau aux pommes de moman]]

La paire de double crochets est une abréviation de :

[title[OeufsBrouillés]]

... qui offre une syntaxe du modèle général de tous les filtres :

[operateur[paramètre]]

En l'occurence, voici comment sélectionner tous les tiddlers étiquetés Recipe :

[tag[Recette]]

Vous pouvez inverser la sélection en ajoutant le point d'exclamation ! juste avant l'opérateur. Par exemple, nous pouvons sélectionner tous les tiddlers sans l'étiquette Recette :

[!tag[Recette]]

Les tiddlers peuvent être filtrés par d'autres champs que les titres ou les étiquettes :

[field:convive[4]]

Cette exemple sélectionnera tous les tiddlers qui ont 4 dans leur champ convive.

Comme le mot "convive" n'est pas un opérateur filtre standard (et n'est pas près de le devenir), vous pouvez omettre le préfixe field: en toute sécurité :

[convive[4]]

Combinaisons

Les filtres que nous avons examinés jusqu'à présent ont chacun une étape. Mais vous pouvez exécuter plusieurs étapes ensemble comme ceci :

[tag[Végétarien]!tag[soupe]convive[4]]

Notez que la séquence entière est contenue dans une seule paire de crochets.

Un tiddler doit correspondre à toutes les étapes de la séquence. Ainsi l'exemple supra renvoie à toutes les recettes végétariennes (autre que soupes) pour 4 convives.

Une série de séquences séparée sélectionnera les tiddlers qui correspondent à l'une des séquences. Nous pouvons réutiliser ceci pour trouver les recettes pour 3, 4 or 5 convives :

[convive[3]] [convive[4]] [convive[5]]

Si nous voulons ignorer les recettes végétariennes pour 4 convives, nous formulerons ainsi :

[convive[3]] [convive[4]!tag[Végétarien]] [convive[5]]

Par défaut, chaque séquence prend en compte tous les tiddlers du wiki. Mais on peut utiliser le signe + pour ne tenir compte que des seuls tiddlers sélectionnés par les précédentes séquences :

[convive[3]] [convive[4]] [convive[5]] +[tag[Végétarien]] +[sort[titre]]

Ceci sélectionne les recettes pour 3, 4 ou 5 convives, puis filtre celles qui correspondent uniquement aux végétariennes, et enfin trie ce qui reste dans l'ordre alphabétique des titres.

D'une façon similaire, nous pouvons utiliser le signe - pour extraire une séquence de tiddlers du résultat précédent. Ici nous sélectionnons toutes les recettes végétariennes exceptées deux :

[tag[Végétarien]] -[title[OeufsBrouillés]] -HaricotsSurToast

Paramètres spéciaux

Le paramètre de chaque étape que nous avons vu jusqu'à présent s'insérait entre crochets, signifiant un traitement littéral par TiddlyWiki. Mais deux autres formes de parenthèses sont possibles :

Les accolades {} indiquent que le paramètre est une Référence textuelle, et que sa valeur doit être recherchée dans un tiddler spécial. Par exemple, si nous avons un tiddler nommé Préférence dont le texte apparait être le mot Végétarien, nous pouvons dire

[tag{Préférence}]

est une alternative à [tag[Végétarien]]. Ce qui permet à 'préférence' d'évoluer dans le temps.

Les chevrons <> indiquent que le paramètre est le nom d'une variable dont la valeur sera utilisée en lieu et place. Ici, nous utilisons la variable intégrée currentTiddler au sein d'un filtre qui sélectionne tous les tiddlers dont le texte contient le titre du tiddler en cours :

[search<currentTiddler>]

Introduction à la rédaction d'un filtre

 19 juin 2015 à 22h05
Ceci décrit les bases de l'écriture d'un filtre de sélection d'un ensemble de tiddlers. Pour une présentation plus technique, voir Syntaxe d'un filtre.

Les filtres ne font rien par eux-même si vous vous contentez de les intégrer dans un tiddler. Il faut un contexte. Une manière facile d'expérimenter les filtres est de les saisir dans l'option Filtrer de l'onglet Recherche avancée.

Le plus simple des cas se présente lorsque vous savez exactement quels tiddlers vous recherchez. Saisissez chaque titre entre une paire de double crochets, un espace entre chacun :

[[Livre de recettes]] [[OeufsBrouillés]] [[Gateau aux pommes de moman]]

Vous pouvez omettre les crochets quand un titre ne contient aucun espace :

[[Livre de recettes]] OeufsBrouillés [[Gateau aux pommes de moman]]

La paire de double crochets est une abréviation de :

[title[OeufsBrouillés]]

... qui offre une syntaxe du modèle général de tous les filtres :

[operateur[paramètre]]

En l'occurence, voici comment sélectionner tous les tiddlers étiquetés Recipe :

[tag[Recette]]

Vous pouvez inverser la sélection en ajoutant le point d'exclamation ! juste avant l'opérateur. Par exemple, nous pouvons sélectionner tous les tiddlers sans l'étiquette Recette :

[!tag[Recette]]

Les tiddlers peuvent être filtrés par d'autres champs que les titres ou les étiquettes :

[field:convive[4]]

Cette exemple sélectionnera tous les tiddlers qui ont 4 dans leur champ convive.

Comme le mot "convive" n'est pas un opérateur filtre standard (et n'est pas près de le devenir), vous pouvez omettre le préfixe field: en toute sécurité :

[convive[4]]

Combinaisons

Les filtres que nous avons examinés jusqu'à présent ont chacun une étape. Mais vous pouvez exécuter plusieurs étapes ensemble comme ceci :

[tag[Végétarien]!tag[soupe]convive[4]]

Notez que la séquence entière est contenue dans une seule paire de crochets.

Un tiddler doit correspondre à toutes les étapes de la séquence. Ainsi l'exemple supra renvoie à toutes les recettes végétariennes (autre que soupes) pour 4 convives.

Une série de séquences séparée sélectionnera les tiddlers qui correspondent à l'une des séquences. Nous pouvons réutiliser ceci pour trouver les recettes pour 3, 4 or 5 convives :

[convive[3]] [convive[4]] [convive[5]]

Si nous voulons ignorer les recettes végétariennes pour 4 convives, nous formulerons ainsi :

[convive[3]] [convive[4]!tag[Végétarien]] [convive[5]]

Par défaut, chaque séquence prend en compte tous les tiddlers du wiki. Mais on peut utiliser le signe + pour ne tenir compte que des seuls tiddlers sélectionnés par les précédentes séquences :

[convive[3]] [convive[4]] [convive[5]] +[tag[Végétarien]] +[sort[titre]]

Ceci sélectionne les recettes pour 3, 4 ou 5 convives, puis filtre celles qui correspondent uniquement aux végétariennes, et enfin trie ce qui reste dans l'ordre alphabétique des titres.

D'une façon similaire, nous pouvons utiliser le signe - pour extraire une séquence de tiddlers du résultat précédent. Ici nous sélectionnons toutes les recettes végétariennes exceptées deux :

[tag[Végétarien]] -[title[OeufsBrouillés]] -HaricotsSurToast

Paramètres spéciaux

Le paramètre de chaque étape que nous avons vu jusqu'à présent s'insérait entre crochets, signifiant un traitement littéral par TiddlyWiki. Mais deux autres formes de parenthèses sont possibles :

Les accolades {} indiquent que le paramètre est une Référence textuelle, et que sa valeur doit être recherchée dans un tiddler spécial. Par exemple, si nous avons un tiddler nommé Préférence dont le texte apparait être le mot Végétarien, nous pouvons dire

[tag{Préférence}]

est une alternative à [tag[Végétarien]]. Ce qui permet à 'préférence' d'évoluer dans le temps.

Les chevrons <> indiquent que le paramètre est le nom d'une variable dont la valeur sera utilisée en lieu et place. Ici, nous utilisons la variable intégrée currentTiddler au sein d'un filtre qui sélectionne tous les tiddlers dont le texte contient le titre du tiddler en cours :

[search<currentTiddler>]

Introduction to Lists

 12 décembre 2017 à 17h51

Making lists of items plays a central role in working with TiddlyWiki. The following is a brief run-through of some of the more common techniques.

TiddlyWiki uses lists internally for many purposes so the word can have several meanings. Here we are concerned with displaying sequences of items, but not necessarily presented as a conventional bullet list.

Manually Typed Lists

WikiText

WikiText lists are manually typed lists that use a special character to specify what sort of list it is and how it should be displayed.

Examples include bullet lists created with asterisks (*) and numbered lists (#). Behind the scenes, WikiText lists are based on the standard <ul> and <li> HTML elements. For more information see Lists in WikiText.

An example of a typed list in WikiText:

* Greatest Movies of All Time
** Casa Blanca
** Pride and Prejudice and Zombies

Affichera ceci :

  • Greatest Movies of All Time
    • Casa Blanca
    • Pride and Prejudice and Zombies

Generated Lists

Lists can be automatically generated with the ListWidget using filters in which filter operators specify criteria for selecting which tiddlers are desired as output. Shortcut macros are provided for some common types of list.

ListWidget

The ListWidget is the most powerful tool for creating lists. It allows the filtered output to be manipulated and styled into forms that may not seem to resemble lists at all, for example tables or complex texts. For more details, see ListWidget.

An example to show all tiddlers tagged with "HelloThere" might look like:

<$list filter="[tag[HelloThere]]"><$view field="title"/><br/></$list>

Affichera ceci :

Discover TiddlyWiki
Some of the things you can do with TiddlyWiki
Ten reasons to switch to TiddlyWiki
Examples
History of TiddlyWiki
What happened to the original TiddlyWiki?
A Gentle Guide to TiddlyWiki
Funding TiddlyWiki
Open Collective

Even tiddlers themselves are made with the ListWidget. The ViewTemplate makes use of the ListWidget to fetch all specified templates that are used to show a tiddlers title, tags, text and more.

Filtered transclusion

The syntax for filtered transclusion {{{...}}} takes a filter as input and outputs a linked list of matching titles. You can also apply a template, for example:

{{{ [tag[HelloThere]] || $:/core/ui/TagTemplate }}}

Affichera ceci :

list-links Macro

The list-links macro gives a preformatted list, typically a bullet list, in a more simplified way than by using the ListWidget. Behind the scenes it really is the ListWidget applying a default template to each list item.

Other “list related” features

list, list-before and list-after are all field names to control the position of tiddlers in a list. Fields are a way to add additional bits of structured information to a tiddler such as date, quantity, category, etc.

list and listed are filter operators to, respectively, select and find titles in lists.

Introduction Vidéo

 3 décembre 2014 à 14h45

Cette rapide présentation explique les principes de base de TiddlyWiki.

On peut trouver le TiddlyWiki utilisé pour produire cette vidéo ici :

https://tiddlywiki.com/editions/introduction/

Introduction Video Thumbnail.jpg

 

is Operator

 7 novembre 2020 à 11h09
purposefilter the input by fundamental category
inputa selection of titles
parameterC = a category
outputthose input tiddlers that belong to category C
! outputthose input tiddlers that do not belong to category C

Learn more about how to use Filters

The parameter C is one of the following fundamental categories:

CategoryMatches any tiddler title that...
currentis the current tiddler
imagehas an image ContentType
binaryhas a binary ContentType
missingdoes not exist (other than possibly as a shadow tiddler), regardless of whether there are any links to it
orphanhas no hard links to it
shadowis a shadow tiddler, regardless of whether it has been overridden with a non-shadow tiddler
systemis a system tiddler, i.e. its title starts with $:/
tagis in use as a tag
tiddlerexists as a non-shadow tiddler
variable Depuis : 5.1.20 exists as a variable (whether or not that variable has a non-blank value)
blank Depuis : 5.1.20 is blank (i.e. is a zero length string)
draft Depuis : 5.1.23 is a draft of another tiddler. Synonym for [has[draft.of]]

If C is anything else an error message is returned. Depuis : 5.1.14 if C is blank, the output is passed through unchanged (in earlier versions an error message was returned).

!is[tiddler] is a synonym for is[missing], and vice versa.

When is[missing] is the first operator in a run, its output is always empty. And when is[shadow] comes first, it outputs only those shadow tiddlers that have been overridden. This is because the initial input to a run contains only non-shadow tiddlers.

Use has[title] to match any tiddler title that is either a tiddler or a shadow tiddler.

The all operator is similar to is, but its scope is the whole wiki.

Examples

is Operator (Examples)

 19 janvier 2015 à 13h46

[is[tag]]

[!is[tag]]

[all[shadows]!is[system]]
→ shadow tiddlers that don't start with $:/

[is[system]tag[$:/tags/Stylesheet]]
→ system stylesheets

[all[shadows]is[system]tag[$:/tags/Stylesheet]]
→ shadow system stylesheets

[is[shadow]]
→ overridden shadow tiddlers

[is[missing]]
→ empty because its input contains only tiddlers that exist

Japanese (Japan) Edition

 27 décembre 2020 à 1h00

TiddlyWikiの日本語バージョンはこちら:

JavaScript

 23 juin 2015 à 8h19

JavaScript est un langage de programmation introduit initialement sur les navigateurs comme une façon de scripter des pages web. Il était considéré au début comme un jouet pas très bien conçu, mais avec les années, il finit par être reconnu comme un langage puissant en tant que tel, et est très largement adopté dans les navigateurs et au-delà.

JavaScript ressemble à ça :

function surfaceDuCercle(rayon) {
	return rayon * 2 * 3.141592653;
}

JSON, Notation Objet JavaScript

 23 juin 2015 à 8h41

JSON est un format de texte brut employé pour modéliser objets de structures hiérarchique contenant des champs nommés (fields).

Les Tiddlers Data peuvent avoir un contenu JSON.

La macro jsontiddlers renvoie le contenu d'un tiddler au format JSON.

JeremyRuston

 19 février 2022 à 16h39

Je suis l'inventeur original de TiddlyWiki. Vous pouvez m'engager sur Federatial, et me retrouver sur ces services :

Informations supplémentaires :

Jermolene

 23 juin 2015 à 7h35

Alias de JeremyRuston.

join Operator

 13 juin 2019 à 16h46
purposejoin a list of strings together with the separator S
inputa selection of titles
parameterS = the separator to insert between each of the items
outputthe input titles joined together with the separator S

Learn more about how to use Filters

Depuis : 5.1.20

Examples

join Operator (Examples)

 13 juin 2019 à 16h47

a b c d e +[join[,]]

JSON in TiddlyWiki

 11 juin 2022 à 11h47

Introduction

JSON (JavaScript Object Notation) is a standardised text representation for data structures that is widely used for the storage and transfer of data.

JSON is used in several different contexts in TiddlyWiki. For example:

  • Tiddlers are represented as JSON data within TiddlyWiki HTML files
  • Groups of tiddlers can be exported and imported as JSON files
  • Plugin tiddlers store their constituent shadow tiddlers as JSON data
  • The client-server configuration uses JSON messages to communicate between the client and the server
  • Arbitrary JSON data within DataTiddlers can be processed and manipulated using a set of filter operators and action widgets

About JSON

The technical description of JSON at the official website https://json.org/ is terse. Here we summarise the main features.

JSON supports two basic data structures:

Arrays are lists of items. The items are identified by their numeric index (starting at zero)

An example of an array is:

["one","two","three\"four"]

Note the following features of arrays:

  • The array is signified by square brackets surrounding the list of items
  • Each item is a string in double quotes. Double quotes can be included within the strings by preceding them with a backslash (\)
  • The items are separated by commas

Objects are collections of name/value pairs. Each item is a value that is identified by a unique name

An example of an object is:

{
  "first": "This is the first value",
  "second": "This is the second value",
  "third": "This is the third value"
}

Note the following features of objects:

  • The object is signified by curly braces surrounding the list of name/value pairs
  • Each name/value pair consists of the name in double quotes, a colon, and then the value
  • The name/value pairs are separated by commas

The examples above all show string values. JSON actually supports several different types of value. Any of these types can be used as a value:

  • String values, as shown above
  • Numeric values, represented as signed decimals such as 1, 3.14. Exponential notation can also be used e.g. -1E10
  • Boolean values, represented by the keywords true and false
  • The special value null, which is often used to represent data that is missing or incomplete
  • Objects and arrays are also values, allowing complex nested structures to be represented

Working with Data Tiddlers

Json Mangler plugin by Joshua Fontany

 6 janvier 2021 à 15h10

Extend tiddlywiki to parse complex ("nested") json data tiddlers.

Json Mangler introduces a new path syntax for indexes of json data tiddlers , and includes many supporting tools, filters, widgets, etc.

Example Wiki: https://joshuafontany.github.io/TW5-JsonMangler/

Source: https://github.com/joshuafontany/TW5-JsonMangler

jsonextract Operator

 11 juin 2022 à 11h47
purposeretrieve the JSON string of a property from JSON strings
inputa selection of JSON strings
parameterone or more indexes of the property to retrieve
outputthe JSON string values of each of the retrieved properties

Learn more about how to use Filters

Depuis : 5.2.4 See JSON in TiddlyWiki for background.

The jsonextract operator is used to retrieve values from JSON data as JSON substrings. See also the following related operators:

  • jsonget to retrieve the values of a property in JSON data
  • jsontype to retrieve the type of a JSON value
  • jsonindexes to retrieve the names of the fields of a JSON object, or the indexes of a JSON array

Properties within a JSON object are identified by a sequence of indexes. In the following example, the value at [a] is one, and the value at [d][f][0] is five.

{
    "a": "one",
    "b": "",
    "c": "three",
    "d": {
        "e": "four",
        "f": [
            "five",
            "six",
            true,
            false,
            null
        ],
        "g": {
            "x": "max",
            "y": "may",
            "z": "maize"
        }
    }
}

The following examples assume that this JSON data is contained in a variable called jsondata.

The jsonextract operator uses multiple operands to specify the indexes of the property to retrieve. Values are returned as literal JSON strings:

[<jsondata>jsonextract[a]] --> "one"
[<jsondata>jsonextract[d],[e]] --> "four"
[<jsondata>jsonextract[d],[f],[0]] --> "five"
[<jsondata>jsonextract[d],[f]] --> ["five","six",true,false,null]
[<jsondata>jsonextract[d],[g]] --> {"x":"max","y":"may","z":"maize"}

Indexes can be dynamically composed from variables and transclusions:

[<jsondata>jsonextract<variable>,{!!field},[0]]

A subtlety is that the special case of a single blank operand is used to identify the root object. Thus:

[<jsondata>jsonextract[]] --> {"a":"one","b":"","c":"three","d":{"e":"four","f":["five","six",true,false,null],"g":{"x":"max","y":"may","z":"maize"}}}

jsonget Operator

 11 juin 2022 à 11h47
purposeretrieve the value of a property from JSON strings
inputa selection of JSON strings
parameterone or more indexes of the property to retrieve
outputthe values of each of the retrieved properties

Learn more about how to use Filters

Depuis : 5.2.4 See JSON in TiddlyWiki for background.

The jsonget operator is used to retrieve values from JSON data as strings. See also the following related operators:

  • jsontype to retrieve the type of a JSON value
  • jsonindexes to retrieve the names of the fields of a JSON object, or the indexes of a JSON array
  • jsonextract to retrieve a JSON value as a string of JSON

Properties within a JSON object are identified by a sequence of indexes. In the following example, the value at [a] is one, and the value at [d][f][0] is five.

{
    "a": "one",
    "b": "",
    "c": "three",
    "d": {
        "e": "four",
        "f": [
            "five",
            "six",
            true,
            false,
            null
        ],
        "g": {
            "x": "max",
            "y": "may",
            "z": "maize"
        }
    }
}

The following examples assume that this JSON data is contained in a variable called jsondata.

The jsonget operator uses multiple operands to specify the indexes of the property to retrieve:

[<jsondata>jsonget[a]] --> "one"
[<jsondata>jsonget[d],[e]] --> "four"
[<jsondata>jsonget[d],[f],[0]] --> "five"

Indexes can be dynamically composed from variables and transclusions:

[<jsondata>jsonget<variable>,{!!field},[0]]

Boolean values and null are returned as normal strings. The jsontype operator can be used to retrieve a string identifying the original type. Thus:

[<jsondata>jsontype[a]] --> "string"
[<jsondata>jsontype[d]] --> "object"
[<jsondata>jsontype[d],[f]] --> "array"
[<jsondata>jsontype[d],[f],[2]] --> "boolean"

Using the jsonget operator to retrieve an object or an array returns a list of the values. For example:

[<jsondata>jsonget[d],[f]] --> "five","six","true","false","null"
[<jsondata>jsonget[d],[g]] --> "max","may","maize"

The jsonindexes operator retrieves the corresponding indexes:

[<jsondata>jsonindexes[d],[f]] --> "0", "1", "2", "3", "4"
[<jsondata>jsonindexes[d],[g]] --> "x", "y", "z"

If the object or array contains nested child objects or arrays then the values are retrieved recursively and returned flattened into a list. For example:

[<jsondata>jsonget[d]] --> "four","five","six","true","false","null","max","may","maize"

A subtlety is that the special case of a single blank operand is used to identify the root object. Thus:

[<jsondata>jsonindexes[]] --> "a", "b", "c", "d"

jsonindexes Operator

 11 juin 2022 à 11h47
purposeretrieve the value of a property from JSON strings
inputa selection of JSON strings
parameterone or more indexes of the property to retrieve
outputthe values of each of the retrieved properties

Learn more about how to use Filters

Depuis : 5.2.4 See JSON in TiddlyWiki for background.

The jsonindexes operator is used to retrieve the property names of JSON objects or the index names of JSON arrays. See also the following related operators:

  • jsonget to retrieve the values of a property in JSON data
  • jsontype to retrieve the type of a JSON value
  • jsonextract to retrieve a JSON value as a string of JSON

Properties within a JSON object are identified by a sequence of indexes. In the following example, the value at [a] is one, and the value at [d][f][0] is five.

{
    "a": "one",
    "b": "",
    "c": "three",
    "d": {
        "e": "four",
        "f": [
            "five",
            "six",
            true,
            false,
            null
        ],
        "g": {
            "x": "max",
            "y": "may",
            "z": "maize"
        }
    }
}

The following examples assume that this JSON data is contained in a variable called jsondata.

The jsonindexes operator uses multiple operands to specify the indexes of the property to retrieve:

[<jsondata>jsonindexes[d],[f]] --> "0", "1", "2", "3", "4"
[<jsondata>jsonindexes[d],[g]] --> "x", "y", "z"

Indexes can be dynamically composed from variables and transclusions:

[<jsondata>jsonindexes<variable>,{!!field}]

Retrieving the indexes of JSON properties that are not objects or arrays will return nothing.

A subtlety is that the special case of a single blank operand is used to identify the root object. Thus:

[<jsondata>jsonindexes[]] --> "a", "b", "c", "d"

jsonstringify Operator

 19 septembre 2023 à 13h48
purposedeprecated, use stringify instead

Learn more about how to use Filters

Depuis : 5.1.14

jsontiddler Macro

 27 avril 2022 à 18h12

The jsontiddler macro returns the fields of a single tiddler in JSON form. See JSON in TiddlyWiki for an overview.

Parameters

title
The title of a tiddler

Tiddlers JSON

 22 juin 2015 à 11h57

Un tiddler JSON tiddler est un tiddler data contenant une structure JSON dans son champ text.

Son ContentType est application/json.

history list est un bon exemple de tiddler JSON.

jsontiddlers Macro

 27 avril 2022 à 18h11

The jsontiddlers macro returns the fields of a selection of tiddlers in JSON form. See JSON in TiddlyWiki for an overview.

An example can be seen in the template tiddler for JSON exports.

Parameters

filter
A filter selecting which tiddlers to include
spaces
An optional number of spaces to use for formatting the JSON. Defaults to 4, with blank or zero resulting in packed JSON with no formatting spaces

JSONTiddlerWidget

 27 avril 2022 à 18h11

Introduction

The jsontiddler widget renders the fields of a tiddler to display as a JSON object. The fields of the tiddler can be customised or excluded.

The jsontiddler widget is used in system templates to generate JSON representations of tiddlers for saving. See JSON in TiddlyWiki for an overview.

Content and Attributes

The content of the <$jsontiddler> widget is ignored.

AttributeDescription
tiddlerOptional title of the tiddler from which the fields are to be displayed
excludeOptional space separated list of fields to be excluded
escapeUnsafeScriptCharsIf set to "yes" then the < character will be escaped to the equivalent \u003C encoding
{any attributes starting with $}Each attribute name (without the leading $) specifies a field to be modified with the attribute value providing the value to assign to the field

jsontype Operator

 11 juin 2022 à 11h47
purposeretrieve the type of a property from JSON strings
inputa selection of JSON strings
parameterone or more indexes of the property whose type is to be retrieved
outputthe types of each of the retrieved properties

Learn more about how to use Filters

Depuis : 5.2.4 See JSON in TiddlyWiki for background.

The jsontype operator is used to retrieve the type of a property in JSON data. See also the following related operators:

  • jsonget to retrieve the values of a property in JSON data
  • jsonindexes to retrieve the names of the fields of a JSON object, or the indexes of a JSON array
  • jsonextract to retrieve a JSON value as a string of JSON

JSON supports the following data types:

  • string - a Unicode string
  • number - a floating point number
  • boolean - Boolean value (true or false)
  • array - an array of values
  • object - an object of name/value pairs
  • null - a special type representing a missing value

Properties within a JSON object are identified by a sequence of indexes. In the following example, the value at [a] is one, and the value at [d][f][0] is five.

{
    "a": "one",
    "b": "",
    "c": "three",
    "d": {
        "e": "four",
        "f": [
            "five",
            "six",
            true,
            false,
            null
        ],
        "g": {
            "x": "max",
            "y": "may",
            "z": "maize"
        }
    }
}

The following examples assume that this JSON data is contained in a variable called jsondata.

The jsontype operator uses multiple operands to specify the indexes of the property whose type is to be retrieved:

[<jsondata>jsontype[a]] --> "string"
[<jsondata>jsontype[d]] --> "object"
[<jsondata>jsontype[d],[f]] --> "array"
[<jsondata>jsontype[d],[f],[2]] --> "boolean"

Indexes can be dynamically composed from variables and transclusions:

[<jsondata>jsontype<variable>,{!!field},[0]]

A subtlety is that the special case of a single blank operand is used to identify the root object. Thus:

[<jsondata>jsontype[]] --> "object"

JSZip Plugin

 19 octobre 2020 à 9h48

This plugin provides primitives for creating Zip files in the browser. It also makes the JSZip library available for use by other plugins.

Plugin KaTeX

 15 juin 2015 à 7h52

Ce plugin ajoute la possibilité d'afficher les notations mathématiques écrites en in LaTeX.

Voir https://tiddlywiki.com/plugins/tiddlywiki/katex/

kdi-demo-configtid

 23 novembre 2021 à 3h44

Keyboard Codes

 25 mai 2021 à 11h37

This is a list of all the key codes supported by the KeyboardWidget:

cancel, help, backspace, tab, clear, return, enter, pause, escape, space, page_up, page_down, end, home, left, up, right, down, printscreen, insert, delete

0, 1, 2, 3, 4, 5, 6, 7, 8, 9

a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z

numpad0, numpad1, numpad2, numpad3, numpad4, numpad5, numpad6, numpad7, numpad8, numpad9

multiply, add, separator, subtract, decimal, divide

f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12
f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24

firefoxsemicolon, firefoxequals, firefoxminus

semicolon, equals, comma, dash, period, slash, backquote, openbracket, backslash, closebracket, quote

shift, ctrl, alt, meta

Keyboard Shortcut Descriptor

 

Keyboard Shortcut Descriptors are used by the KeyboardWidget and within Tiddlers tagged $:/tags/KeyboardShortcut to link actions with a keyboard combination

A Keyboard Shortcut Descriptor has the following format:

	ctrl+enter
	ctrl+shift+alt+A
	alt-shift-T
	alt-Space

It can have multiple Key combinations:

ctrl+enter alt+shift+A ctrl+alt+9 alt-Space ctrl-Backspace

There are two ways Keyboard Shortcut Descriptors can be used:

Keyboard Shortcut Tiddler

 

A Keyboard Shortcut Tiddler is made of three parts:

Depuis : 5.2.4 By default $keyboard and text editor shortcuts take priority, which can be circumvented by setting the field priority to yes.

If the Keyboard Shortcut Descriptor has the form ((my-shortcut)) it's a reference to a configuration Tiddler that stores the corresponding Keyboard Shortcut

In order to make a shortcut editable through the Raccourcis clavier Tab in the $:/ControlPanel it's sufficient to create a tiddler $:/config/ShortcutInfo/my-shortcut, where the suffix is the reference used for the Keyboard Shortcut

Notes on wiki navigation

If you want to create keyboard shortcuts for navigation, there are two things to keep in mind:

keyboard-driven-input Macro

 

The keyboard-driven-input macro generates an input field or textarea that lets you cycle through a given list of entries with the Up and Down keys. Doing so, an entry gets selected and can be processed with further actions

Parameters

To create the input field or textarea, the keyboard-driven-input macro accepts all parameters of the EditTextWidget

The additional parameters are:

parameterpurpose
storeTitlethe title of the tiddler that stores the user input
selectionStateTitlethe title of the tiddler that stores the selected entry with a -primaryList or -secondaryList suffix to make it unique
inputAcceptActionsthe actions that get processed when the user hits Enter
inputAcceptVariantActionsthe actions that get processed when the user hits ctrl-Enter
inputCancelActionsthe actions that get processed when the user hits Escape
configTiddlerFiltera filter that specifies the tiddler that stores the first item-filter in its first-search-filter field and the second item-filter in its second-search-filter field
firstSearchFilterFieldthe field of the configTiddler where the first search-filter is stored. Defaults to first-search-filter
secondSearchFilterFieldthe field of the configTiddler where the second search-filter is stored. Defaults to second-search-filter
filterMinLengththe minimum length of the user input after which items are filtered

See Demonstration: keyboard-driven-input Macro for further guidance on using this macro.

Raccourcis clavier

 1 juin 2015 à 10h45

La prise en compte des raccourcis clavier est actuellement très limitée mais s'accroîtra dans les versions futures.

Raccourcis de saisie

TouchesDescription du raccourci
ctrl-enterValide les modifications effectuées dans le tiddler en cours de saisie
escapeAnnule les modification effectuées dans le tiddler en cours de saisie

KeyboardWidget

 9 octobre 2021 à 13h12

Introduction

The keyboard widget allows ActionWidgets to be triggered by specific key combinations. There is also a shorthand for generating Messages via the message and param attributes.

Content and Attributes

The content of the <$keyboard> widget is rendered normally. The keyboard shortcuts only take effect when the focus is within the contained content.

AttributeDescription
actionsA string containing ActionWidgets to be triggered when the key combination is detected
Depuis : 5.2.0 The variables: event-key, event-code and modifier are available for the actions
messageThe title of the WidgetMessage to generate
paramThe parameter to be passed with the WidgetMessage
keyKey string identifying the key(s) to be trapped (see below)
classA CSS class to be assigned to the generated HTML DIV element
tag Depuis : 5.1.14 The html element the widget creates to capture the keyboard event, defaults to:
» span when parsed in inline-mode
» div when parsed in block-mode

Variables

Depuis : 5.2.0 The following variables are made available to the actions:

VariablesDescription
event-keyThe event-key variable contains the character, if possible. eg: 1. You can experiment with some settings at: Key Codes (Example)
event-codeThe event-code variable contains a character description. eg: Digit1 instead of 1. Or Space instead of an empty string , which is hard to see
event-key-descriptorThe event-key-descriptor variable is available if the keyboard event captured was configured using a keyboard shortcut descriptor of the form ((my-shortcut)) which references a configuration tiddler.
modifierThe modifier Variable contains the Modifier Key held during the event (can be normal, ctrl, shift, alt or combinations thereof)

Key Strings

Key strings are made up of one or more key specifiers separated by spaces. Each key specifier is zero or more of the modifiers alt, shift, ctrl or meta followed by the name of a key, all joined with "+" plus or "-" minus symbols. Key names are either the letter or digit printed on the key (eg "a" or "1"), or one of the special keys backspace, tab, enter or escape.

ctrlshiftaltmeta+-+backspace<a-z,0-9>tabenterescape

For example:

A
shift+A
shift+escape
ctrl+enter
ctrl+shift+alt+A

More Info

Tuer le Dragon

 19 novembre 2014 à 22h58

Il s'agit de l'une des tâches pour l'exemple de gestion de tâches

Kin filter operator by bimlas

 6 janvier 2021 à 15h10

The purpose of the kin operator with examples:

  • Finds related tags, related tiddlers in any depth
  • Finds out where base tiddler originates and what other elements originate from it
  • Finds the ancestors and successors of a family member
  • Finds the "leaves" of the branch of the base tiddler in a tree-like structure (where the base tiddler is a leaf)
  • Finds the super- and subsets / groups of a mathematical set (where the base tiddler is a set)

https://bimlas.gitlab.io/tw5-kin-filter/

Kookma Plugin Library by Mohammad

 17 novembre 2020 à 16h08

This library contains most useful plugins developed under the name Kookma for Tiddlywiki 5.

https://kookma.github.io/TW-PluginLibrary/

It has two parts

The plugin library introduces a very simple mechanism like Tiddlywiki Official Plugin Library to let select among the published plugins and install any number of them you like.

Korean (Korea Republic) Edition

 24 avril 2016 à 12h33

티들리위키 한국어 번역은 다음에서 사용할 수 있습니다:

Language Icon: ca-ES

 

Language Icon: cs-CZ

 

Language Icon: da-DK

 

Language Icon: de-AT

 

Language Icon: de-DE

 

Language Icon: el-GR

 

Language Icon: en-US

 

Language Icon: es-ES

 

Language Icon: fr-FR

 

Language Icon: hi-IN

 

Language Icon: ia-IA

 

Language Icon: it-IT

 

Language Icon: ja-JP

 

Language Icon: ko-KR

 

Language Icon: nl-NL

 

Language Icon: pa-IN

 

Language Icon: pt-PT

 

Language Icon: ru-RU

 

Language Icon: sk-SK

 

Language Icon: sv-SE

 

Language Icon: zh-Hans

 

Language Icon: zh-Hant

 

LanguageGallery Example

 17 novembre 2021 à 21h27

Here is an example of using the ListWidget and the TranscludeWidget to show a grid of all of Language Icons which are tiddlers tagged and

Langues

 3 décembre 2014 à 12h05

Les plugins de langue fournissent des traductions pour l'interface principale de TiddlyWiki.

Les langues ci-dessous sont disponibles :

Vous pouvez contribuer en suivant les instructions pour traduire TiddlyWiki dans votre langue.

last Operator

 3 février 2015 à 19h20
purposeselect the last N input titles
inputa selection of titles
parameterN = an integer, defaulting to 1
outputthe last N input titles

Learn more about how to use Filters

last Operator (Examples)

 19 janvier 2015 à 18h21

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]last[]]

[list[Days of the Week]last[5]]

[tag[Concepts]!sort[title]last[3]]

Latest

 15 novembre 2014 à 22h08

Les informations, articles, ressources et exemples les plus récents.

Lancement de TiddlyWiki

 17 décembre 2014 à 19h34

En septembre 2004, j'ai donc publié une version préliminaire de TiddlyWiki. Il s'agissait de la plus petite application possible démontrant le concept : un simple fichier HTML de 48KB qui s'auto-engendrait.

L'inconvénient d'avoir écrit de cette manière la première version de TiddlyWiki, c'est que ça la rendait complètement impraticable pour l'édition — quand vous cliquiez sur « enregistrer les modifications », elle faisait apparaître une fenêtre montrant les données qui auraient été enregistrées s'il avait été possible d'écrire sur le système de fichiers depuis une page HTML.

Un grande partie des premiers commentaires sur TiddlyWiki étaient que c'était un outil sympathique, mais qu'il aurait été plus utile si on avait pu enregistrer correctement les modifications. J'étais plutôt frustré, car je tenais pour certaine l'impossibilité pour un fichier HTML tournant dans un navigateur d'enregistrer des modifications sur le système de fichiers local.

Quelques mois plus tard, j'ai repéré une extension Firefox expérimentale qui permettait à TiddlyWiki de sauvegarder les modifications depuis le navigateur. En examinant le code, je réalisai que l'API utilisée pour écrire sur le système de fichiers était en fait disponible pour les fichiers HTML ordinaires — pourvu qu'ils soient chargés depuis une URI de type file://.

J'adaptai le code Firefox dans le noyau de TiddlyWiki et j'ajoutai bientôt une fonctionnalité similaire pour Internet Explorer (en utilisant un ancien contrôle ActiveX que Microsoft distribuait avec Internet Explorer).

Chargement différé (Lazy Loading)

 24 juin 2015 à 10h42

Habituellement, avec TiddlyWiki, le contenu complet de tous les tiddlers est intégré dans le fichier HTML principal. Le LazyLoading (chargement différé) fait référence à une technique qui intègre seulement les métadonnées dans le tiddler (en d'autres termes, tous les champs hormis le champ text), et demande le contenu au serveur quand il est requis.

Le Lazy Loading peut être utilisée dans deux configurations:

Voir le LazyLoadingMechanism pour plus de détails sur la façon dont le LazyLoading est implémentée.

Le LazyLoading sous Node.js

Pour exécuter le chargement différé des images par TiddlyWiki, lancer le serveur par cette ServerCommand :

tiddlywiki --server 8080 $:/core/save/lazy-images

Le LazyLoading sous TiddlyWeb

Dans la configuration actuelle, le LazyLoading est activée par défaut.

Leaflet maps plugin by Sylvain Comte

 6 janvier 2021 à 15h10

A mapping plugin based on Leaflet library. Allows you to create maps based upon geographical data contained in tiddlers.

http://sycom.github.io/TiddlyWiki-Plugins/#Leaflet%20plugin

The leaflet plugin is a (working) attempt to integrate the leaflet library in TiddlyWiki in order to display geographical purpose tiddlers.

For now <$leafmap> widget displays an interactive map. Select size, location and zoom, clustering distance, and background. You can display data : geojson, point(s), polygon(s) and/or polyline(s) directly or calling GeoTiddler(s). Tiddler can be called individually, by list or with a filter.

Have a look at demo page on the web.

Apprendre TiddlyWiki

 15 novembre 2014 à 21h20

En savoir plus sur l'utilisation de TiddlyWiki :

Départ de //British Telecom//

 25 septembre 2014 à 13h27

Fin 2011, j'ai progressivement senti que j'aurais plus de latitude hors de l'enceinte de British Telecom pour réaliser le potentiel de TiddlyWiki. D'un commun accord, je suis parti et j'ai commencé à travailler comme développeur indépendant, en me concentrant principalement sur une réincarnation de TiddlyWiki, qui pris la forme de TiddlyWiki5.

length Operator

 13 juin 2019 à 16h33
purposereturns the number of characters of each item in the list
inputa selection of titles
outputreplaces each input title with its length as an integer

Learn more about how to use Filters

Depuis : 5.1.20

Examples

length Operator (Examples)

 13 juin 2019 à 16h34

[[abc]length[]]

[tag[HelloThere]length[]]

LetWidget

 1 octobre 2022 à 10h46

Introduction

Depuis : 5.2.1 The $let widget allows multiple variables to be set in one operation. In some situations it can result in simpler code than using the more flexible $set widget. It differs from the $vars widget in that variables you're defining may depend on earlier variables defined within the same $let.

Content and Attributes

The content of the $let widget is the scope for the value assigned to the variable.

AttributeDescription
{attributes}Each attribute name specifies a variable name. The attribute value is assigned to the variable

Attributes are evaluated in the order they are written. Attributes with the same name are allowed. Each time a duplicate attribute is encountered, it will replace the existing value set by the earlier duplicate.

Note
Depuis : 5.2.4 There is no longer any restriction on using variable names that start with the $ character.

Examples

Consider a case where you need to set multiple variables, where some depend on the evaluation of others.

Using the $let widget, this situation may be handled in the following way:

\define helloworld() Hello world!

<$let target="MyTiddler" currentTiddler={{{ [<target>prefix[$:/settings/for/]] }}} settings={{!!text}} currentTiddler=<<target>> >
  The settings for <<currentTiddler>> are: <<settings>>
</$let>

In contrast, here is the same example using the $set widget:

<$set name="target" value="MyTiddler" >
<$set name="currentTiddler" value={{{ [<target>prefix[$:/settings/for/]] }}} >
<$set name="settings" value={{!!text}} >
<$set name="currentTiddler" value=<<target>> >
  The settings for <<currentTiddler>> are: <<settings>>
</$set>
</$set>
</$set>
</$set>

Remarks

This widget differs from $vars in the following way:

  • Each variable's definition will be immediately available to all proceeding variables in the same let widget. This differs from vars, in which definitions which depend on some variable will always look to the widget's outer scope for a value.

This widget differs from $set in the following ways:

  • A fallback (also known as "emptyValue") cannot be specified
  • Filters cannot be used to produce a conditional variable assignment
  • Variable names must be literal strings

levenshtein Operator

 4 mars 2023 à 18h16
purposedetermine the Levenshtein distance of the input title(s) and a given string
inputa selection of titles
parameterS = a string
outputthe Levenshtein distance between the input title(s) and S

Learn more about how to use Filters

Depuis : 5.2.6

The Levenshtein distance is a metric for measuring the difference between two strings. Informally, the Levenshtein distance between two strings is the minimum number of single-character edits required to change one string into the other.

Examples

levenshtein Operator (Examples)

 4 mars 2023 à 18h31

Determine the Levenshtein distance between two words:

[[motel]levenshtein[money]]

List the 10 tiddler titles with the smallest Levenstein distance to "TiddlyWiki":

<ul>
<$list filter="[all[tiddlers]!is[system]] :sort:number[levenshtein[TiddlyWiki]] :and[first[10]]">
<li>
<$link /> (<$text text={{{ [all[current]levenshtein[TiddlyWiki]] }}} />)
</li>
</$list>
</ul>

Affichera ceci :

Lexique

 16 novembre 2014 à 8h59

License

 27 janvier 2017 à 22h26

TiddlyWiki is published under a permissive BSD 3-Clause License stored in the shadow tiddler $:/core/copyright.txt:

TiddlyWiki created by Jeremy Ruston, (jeremy [at] jermolene [dot] com)

Copyright (c) 2004-2007, Jeremy Ruston
Copyright (c) 2007-2023, UnaMesa Association
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this
  list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright notice,
  this list of conditions and the following disclaimer in the documentation
  and/or other materials provided with the distribution.

* Neither the name of the copyright holder nor the names of its
  contributors may be used to endorse or promote products derived from
  this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

In layman's terms, the license says that you can take TiddlyWiki and do anything you want with it without any license fee payment or other legal obligation to the creators of TiddlyWiki or anyone else. The quid pro quo is that there is no warranty or guarantee with open source projects like TiddlyWiki. You can't sue the contributors to TiddlyWiki for any loss or damage due to the use of TiddlyWiki: even if your data is lost due to a tragic chain of circumstances that involves TiddlyWiki.

You are respectfully requested that to make an attribution to the project, but there's no obligation to do so.

For the avoidance of doubt, any information that you choose to store within your own copy of TiddlyWiki remains yours; using TiddlyWiki to publish content doesn't change whatever rights you may have to that content.

limit Operator

 3 février 2015 à 18h54
purposeselect the first or last N input titles
inputa selection of titles
parameterN = an integer, defaulting to 0
outputthe first N input titles
! outputthe last N input titles

Learn more about how to use Filters

limit[N] and !limit[N] are synonyms for first[N] and last[N] respectively.

Examples

limit Operator (Examples)

 23 janvier 2015 à 21h43

[sort[modified]!limit[20]]
→ the 20 most recently modified tiddlers

[has[created]sort[created]limit[10]]
→ the oldest 10 tiddlers in the wiki

lingo Macro

 21 février 2015 à 15h57

The lingo macro relates to the translation of TiddlyWiki's user interface into other languages. It returns a piece of text in the user's currently selected language.

Translatable text is supplied by language plugins containing tiddlers with specific titles that start with $:/language/.

Parameters

title
The title of the shadow tiddler that contains the text. The prefix $:/language/ is added automatically

Exemples

lingo Macro (Examples)

 21 février 2015 à 16h01

This example shows the text used as the basis for the title of a newly created tiddler:

<<lingo DefaultNewTiddlerTitle>>

This example shows the name of the eighth month of the year, for use in formatting dates:

<<lingo Date/Long/Month/8>>

LinkCatcherWidget

 26 février 2022 à 12h11

Introduction

The link catcher widget traps WidgetMessage: tm-navigate dispatched within its child content by performing any or all of these actions:

  • sending a different widget message
  • setting a tiddler to the title of the navigated tiddler
  • setting a tiddler to a specified value
  • performing a series of ActionWidgets

Content and Attributes

The content of the <$linkcatcher> widget is displayed normally.

AttributeDescription
toOptional title of the tiddler to be set to the title of the navigated tiddler
messageOptional identifier for a widget message to be sent when a navigation is caught
setOptional title of the tiddler to be set to a specified value when navigation occurs
setToValue to be assigned by the set attribute
actionsActions to be performed when a link is caught. Within the action string, the variable "navigateTo" contains the title of the tiddler being navigated. Depuis : 5.1.23 the modifier variable lists the modifier keys that are pressed when the action is invoked. The possible modifiers are ctrl, ctrl-alt, ctrl-shift, alt, alt-shift, shift and ctrl-alt-shift

Depuis : 5.2.0 For more complex use cases involving trapping the tm-navigate message consider the MessageCatcherWidget which provides greater flexibility

Liens en WikiTexte

 4 mars 2022 à 1h38

L'une des aptitudes clés du WikiTexte est sa capacité à créer des liens vers d'autres mémos (appelés tiddlers) ou vers des sites externes. Il existe plusieurs moyens de les mettre en œuvre.

Liens manuels

Lien vers un tiddler par son titre :

[[Titre de Tiddler]]

Pour changer le texte affiché par le lien :

[[Texte à afficher|Titre du Tiddler]]

Les liens peuvent aussi être créés à l'aide de la barre d'outils d'édition. Cliquez sur le bouton lien, puis recherchez et sélectionnez un tiddler.

Lien en « notation chameau »

Pour les tiddlers dont le titre respecte les règles de la notation chameau, saisir leur titre sans l'encadrer entre doubles crochets suffit à créer automatiquement un lien.

Il est possible de neutraliser un lien en le préfixant avec le symbole ~. Par exemple :

* ~HelloThere n'est pas un lien
* ~http://google.com/ n'est pas un lien

Affichera ceci :

  • HelloThere n'est pas un lien
  • http://google.com/ n'est pas un lien

Code HTML correspondant :

<ul><li>HelloThere n'est pas un lien</li><li>http://google.com/ n'est pas un lien</li></ul>

Liens externes

Pour inclure un lien vers une ressource Web externe comme un site ou un fichier, il est nécessaire de saisir son URL complète, en incluant son sigle URI, par exemple un protocole comme http://, file:// ou mailto: :

https://tiddlywiki.com/

[[TW5|https://tiddlywiki.com/languages/fr-FR/index.html]]

[[Envoyez-moi un courriel|mailto:moi@ici.net]]

[[Ouvrez le fichier|file:///c:/users/moi/index.html]]

Pour que cette syntaxe fonctionne, l'URL doit être reconnaissable en tant qu'URL. Dans le cas contraire elle est interprétée comme un titre de tiddler. Par conséquent, pour créer un lien vers une ressource localisée avec un chemin relatif, il faut utiliser la syntaxe étendue :

[ext[Ouvrir le fichier|index.html]]

[ext[Ouvrir le fichier|./index.html]]

[ext[Ouvrir le fichier|../README.md]]

[ext[Ouvrir le fichier|c:\users\moi\index.html]]

La syntaxe étendue fonctionne aussi avec les URL complètes, même si dans ce cas elle n'est pas nécessaire :

[ext[https://tiddlywiki.com/]]

[ext[TW5|https://tiddlywiki.com/languages/fr-FR/index.html]]

[ext[Envoyez-moi un courriel|mailto:moi@ici.net]]

[ext[Ouvrez le fichier|file:///c:/users/moi/index.html]]

Vous pouvez aussi utiliser la syntaxe étendue pour forcer l'interprétation en tant que lien externe :

[ext[Donnez|bitcoin:1aabbdd....?amount=0.001]]

Personnalisation des liens

Voir le LinkWidget pour plus de détails sur le widget sous-jacent utilisé pour implémenter les liens des tiddlers, et notamment les macros qui peuvent être utilisées pour personnaliser son comportement.

Génération de liens dynamiques

Les Liens en WikiTexte ne se prêtent pas bien à la création de liens dynamiques. C'est parce que ce lien WikiTexte :

[[lien vers moi-même|Linking in WikiText]]

est un raccourci qui utilise le LinkWidget et le TextWidget ainsi :

<$link to="Linking in WikiText">
  <$text text="lien vers moi-même"/>
</$link>

Comme le titre du lien ("lien vers moi-même") et la cible du lien ("Linking in WikiText") sont utilisés en tant qu'attributs de widgets, aucune expansion de WikiTexte ne peut avoir lieu.

Par exemple, une tentative d'utilisation d'une référence et d'une variable pour générer un lien dynamique comme ceci :

Attention :
Ne faites pas comme ça !

[[{{!!mon_texte}}|<<currentTiddler>>]]

revient à essayer d'utiliser les widgets Lien et Texte ainsi :

Attention :
Ne faites pas comme ça !
<$link to="<<currentTiddler>>">
  <$text text="{{!!mon_texte}}"/>
</$link>

ce qui ne fonctionnera pas comme espéré. Le contenu des attributs est placé entre guillemets et donc traité comme une valeur littérale protégée contre l'expansion WikiTexte. Il sera donc affiché ainsi :

{{!!mon_texte}}

Afin d'obtenir l'effet désiré, le LinkWidget peut être utilisé explicitement ainsi :

<$link to=<<currentTiddler>>>{{!!mon_texte}}</$link>

Affichera ceci :

Ceci est le contenu du champ mon_texte

Autre exemple de construction dynamique de liens.

Liens internes aux tiddlers - « liens ancrés »

Dans TiddlyWiki les liens ancrés peuvent cibler des points particuliers et des sections distinctes à l'intérieur même de tiddlers, qui aident le lecteur à naviguer dans le contenu des tiddlers les plus longs.

Voir Anchor Links using HTML pour plus d'informations.

links Operator

 3 février 2015 à 18h55
purposefind the titles linked to by each input title
inputa selection of titles
parameternone
outputthe titles to which the input tiddlers contain hard links

Learn more about how to use Filters

Each input title is processed in turn. The corresponding tiddler's list of links is generated, in the order in which they appear in the tiddler's text, and dominantly appended to the operator's overall output.

Examples

links Operator (Examples)

 24 janvier 2015 à 20h27

[[HelloThere]links[]]

[all[current]links[]]
→ tiddlers hard-linked from the current one

Here are some hard links:

LinkWidget

 10 juin 2019 à 20h51

The link widget generates links to tiddlers. (Use the HTML <a> element to generate external links).

Content and Attributes

The content of the link widget is rendered within the <a> tag representing the link. If the content is empty then the title of the target tiddler is rendered as the default, for example:

  • <$link/> is equivalent to <$link to=<<currentTiddler>>><$view field="title"/></$link>
  • <$link to="HelloThere"/> is equivalent to <$link to="HelloThere">HelloThere</$link>
AttributeDescription
toThe title of the target tiddler for the link (defaults to the current tiddler)
aria-labelOptional accessibility label
tooltipOptional tooltip WikiText
tabindexOptional numeric tabindex
draggable"yes" to enable the link to be draggable (defaults to "yes")
tagOptional tag to override the default "a" element
classOptional CSS classes in addition to the default classes (see below)
overrideClass Depuis : 5.1.16 Optional CSS classes instead of the default classes

The draggable functionality is equivalent to using the DraggableWidget with the tiddler attribute set to the link target.

The default value of the tooltip attribute is supplied by the tv-wikilink-tooltip variable.

This means that you can control the text of a link tooltip in several ways:

<$link to="HelloThere" tooltip="Custom tooltip">Link 1</$link>

<$link to="HelloThere" tooltip="Another tooltip">{{$:/core/icon}}</$link>

<$set name="tv-wikilink-tooltip" value="I'm a link to {{!!title}}">
<$link to="HelloThere">Link 2</$link>
</$set>

Renders as:

Link 1

Link 2

Note that the tooltip is rendered with the current tiddler set to the target of the link.

A useful convention is to set the tooltip like this:

\define tv-wikilink-tooltip()
<$transclude field="tooltip"><$transclude field="title"/></$transclude>
\end

This causes the tooltip to be the tooltip field of the target tiddler. If the field isn't present, then the title is used instead.

CSS Classes

The link widget automatically determines and applies the following classes to links:

  • tc-tiddlylink - applied to all links
  • tc-tiddlylink-external - applied to external, non-tiddler links
  • tc-tiddlylink-internal - applied to tiddler links
  • tc-tiddlylink-missing - applied to tiddler links where the target tiddler doesn't exist
  • tc-tiddlylink-resolves - applied to tiddler links when the target tiddler does exist

Use the class attribute to specify additional css classes, or overrideClass to apply only that but not the above defaults, e.g. when used in a LinkCatcherWidget:

*<$link class="example">Here</$link> the `example` class is added.
*<$link overrideClass="example">Here</$link> only the `example` class applies.
*<$link overrideClass="">Here</$link> no class is set.

Affichera ceci :

  • Here the example class is added.
  • Here only the example class applies.
  • Here no class is set.

href generation

The following process is used to generate the href attribute of the generated HTML <a> element:

  1. If tv-get-export-link is defined it is invoked to convert the target tiddler title to the href value
  2. Depuis : 5.1.15 If tv-filter-export-link is defined it is interpreted as a filter that converts the target tiddler title to the href value
  3. If tv-wikilink-template is defined it is treated as a specialised macro body that can perform limited conversion of the target tiddler title to the href value
  4. Otherwise, the target tiddler title is URI encoded to create the href

Configuration variables

list Operator

 15 novembre 2021 à 9h23
purposeselect titles via a list field
inputignored
! inputa selection of titles
parameterR = a reference to a field or property of a particular tiddler
outputthe titles stored as a title list at R
! outputthose input titles that are not mentioned at R

Learn more about how to use Filters

R can reference either a field or a property. See TextReference for the syntax.

  • If neither is specified, the list field is used by default. So [list[T]] outputs the titles listed in the list field of tiddler T.
  • If R consists of only a field or a property, the tiddler part of the reference defaults to the current tiddler. So [list[!!tags]] outputs the titles listed in the tags field of the current tiddler.

Examples

list Operator (Examples)

 23 janvier 2015 à 21h44

These examples make use of the Days of the Week tiddler.

[list[HelloThere]]

[list[Days of the Week!!short]]

Macro list-links

 19 juin 2015 à 22h17

La macro macro list-links renvoie une liste formatée de liens vers une sélection de tiddlers.

Si un tiddler a un champ caption, il est affiché au lieu du titre du tiddler.

Paramètres

filter
Un filtre indiquant quels tiddlers inclure
type
un élément HTML à utiliser pour une liste globale, par défaut ul
subtype
un élément HTML à utiliser chaque élément d'une liste, par défaut li
class
Une classe CSS pour une liste globale

Exemples

Macro list-links (Exemples)

 19 juin 2015 à 21h25

Cet exemple liste tous les tiddlers dont les titres commencent par J :

<<list-links filter:"[prefix[J]]">>

Cet exemple liste la documentation des tiddlers des macros du noyau, chacune ayant un champ caption :

<<list-links filter:"[tag[Core Macros]]">>

list-links-draggable Macro

 14 décembre 2021 à 14h16

The list-links-draggable macro renders the ListField of a tiddler as a list of links that can be reordered via drag and drop.

Parameters

tiddler
The title of the tiddler containing the list
field
The name of the field containing the list (defaults to list)
emptyMessage
Optional wikitext to display if there is no output (tiddler is not existed, field is not existed or empty)
type
The element tag to use for the list wrapper (defaults to ul)
subtype
The element tag to use for the list items (defaults to li)
class
Optional space separated classes to add to the wrapper element
itemTemplate
Optional title of a tiddler to use as the template for rendering list items

If the itemTemplate parameter is not provided then the list items are rendered as simple links. Within the itemTemplate, the currentTiddler Variable refers to the current list item.

Exemples

list-tagged-draggable Macro

 9 janvier 2018 à 17h12

The list-tagged-draggable macro renders the tiddlers with a particular tag as a list of links that can be reordered via drag and drop.

Parameters

tag
The title of the tag
subFilter
An optional subfilter to filter out unwanted items (eg !tag[done])
itemTemplate
Optional title of a tiddler to use as the template for rendering list items
emptyMessage
Optional wikitext to display if there are no tiddlers with the specified tag

Note that the ordering is accomplished by assigning a new list to the list field of the tag tiddler. Any list-before or list-after fields on any of the other tiddlers carrying the tag are also removed to ensure the list field is respected.

If the itemTemplate parameter is not provided then the list items are rendered as simple links. Within the itemTemplate, the currentTiddler Variable refers to the current list item.

Exemples

list-tagged-draggable Macro (Examples)

 29 mars 2017 à 10h33

<<list-tagged-draggable tag:"Features">>

list-thumbnails Macro

 12 juin 2020 à 18h18

The list-thumbnails macros are used to create lists of linkable thumbnail panels.

Parameters

filter
filter for selecting thumbnails
width
Width of thumbnail (default 280 pixels)
height
Height of thumbnail (default 157 pixels)

Exemples

list-thumbnails Macro (Examples)

 12 juin 2020 à 18h14

This example lists all the tiddlers which are tagged with "HelloThumbnail":

<<list-thumbnails filter:"[tag[HelloThumbnail]]" width:"168" height:"95">>

listed Operator

 3 février 2015 à 18h57
purposefind the titles that list the input titles
inputa selection of titles
parameterF = the name of a field, defaulting to list
outputthe titles in which field F mentions any of the input titles

Learn more about how to use Filters

F is assumed to be a title list.

Each input title is processed in turn. A list of tiddlers whose F field mentions it is generated (in no particular order) and dominantly appended to the operator's overall output.

Examples

listed Operator (Examples)

 23 janvier 2015 à 21h46

[[HelloThere]listed[]]

[all[current]listed[my-special-list]]

ListenCommand

 1 juillet 2018 à 18h10

Depuis : 5.1.18 See WebServer for details of TiddlyWiki's web server functionality.

Sert un wiki via HTTP.

La commande listen utilise des paramètres de commande nommés :

--listen [<nom>=<valeur>]...

Tous les paramètres sont optionnels avec des valeurs par défaut sûres, et peuvent être spécifiés dans n'importe quel ordre. Les paramètres reconnus sont les suivants :

  • host - nom ou adresse de machine hôte à laquelle sera attaché le service (par défaut "127.0.0.1", autrement dit "localhost")
  • path-prefix - préfixe optionnel pour les noms de chemin
  • port - numéro de port sur lequel écouter ; une valeur non numérique est interprétée comme un nom de variable d'environnement dont sera extrait le numéro de port (par défaut à "8080")
  • credentials - chemin vers le fichier CSV d'autorisations (relativement au dossier du wiki)
  • anon-username - nom d'utilisateur qui servira à signer les modifications si l'utilisateur est anonyme
  • username - nom d'utilisateur optionnel pour l'authentification basique
  • password - mot de passe optionnel pour l'authentification basique
  • authenticated-user-header - nom d'en-tête optionnel à utiliser pour les authentifications de confiance
  • readers - liste de personnes de confiance autorisées à lire ce wiki, séparées par des virgules
  • writers - liste de personnes de confiance autorisées à modifier ce wiki, séparées par des virgules
  • csrf-disable - donner la valeur "yes" pour désactiver les vérifications CSRF (vaut "no" par défaut)
  • sse-enabled - donner la valeur "yes" pour activer les événement envoyés par le serveur (valeur "no" par défaut)
  • root-tiddler - le tiddler à servir à la racine (par défaut "$:/core/save/all")
  • root-render-type - le type de contenu avec lequel le tiddler racine doit être rendu (par défaut "text/plain")
  • root-serve-type - le type de contenu avec lequel le tiddler racine doit être servi (par défaut "text/html")
  • tls-cert - nom de chemin du fichier de certificat TLS (relativement au dossier du wiki)
  • tls-key - nom de chemin du fichier de clé TLS (relativement au dossier du wiki)
  • debug-level - niveau de débogage optionnel ; mettre à "debug" pour voir le détail des requêtes (par défaut à "none")
  • gzip - donner la valeur "yes" pour activer la compression gzip pour certaines interactions http (par défaut à "no")
  • use-browser-cache - une valeur "yes" autorise le navigateur à mettre en cache les réponses pour économiser de la bande passante ("no" par défaut)

Pour plus d'informations sur la manière de donner accès à votre instance de serveur à l'ensemble de votre réseau local, ainsi que sur les risques éventuels en matière de sécurité, voir le tiddler WebServer sur tiddlywiki.com.

Champ liste

 19 février 2022 à 19h43

Le champ de tiddler list est une fonctionnalité optionnelle qui peut vous aider à structurer votre contenu. Sa valeur est une liste de titres, qui peut être utilisée de différentes façons :

  • Le champ list d'un tiddler utilisé comme tag détermine l'ordre des tiddlers portant ce tag – voir Étiqueter pour plus de détails
  • Le filtre list sélectionne les entrées d'une liste – voir list Operator
  • Le filtre listed sélectionne les tiddlers listant le(s) tiddler(s) sélectionné(s) – voir listed Operator
  • Le widget $navigator manipule un tiddler $:/StoryList dont le champ list contient les tiddlers affichés dans la vue principale

ListopsData

 8 novembre 2015 à 4h18
DataIndex: 

Listes en WikiTexte

 17 avril 2022 à 22h59

Listes à puces

Vous pouvez créer des listes à puces à l'aide du caractère * () :

* Premier élément d'une liste
* Deuxième éléments d'un liste
** Un sous-élément
* Troisième élément d'une liste

Affichera ceci :

  • Premier élément d'une liste
  • Deuxième éléments d'un liste
    • Un sous-élément
  • Troisième élément d'une liste

Code HTML correspondant :

<ul><li>Premier élément d'une liste</li><li>Deuxième éléments d'un liste<ul><li>Un sous-élément</li></ul></li><li>Troisième élément d'une liste</li></ul>

Listes ordonnées

Les listes ordonnées utilisent # au lieu de * () :

# Premier élément
# Deuxième élément
# Troisième élément

Affichera ceci :

  1. Premier élément
  2. Deuxième élément
  3. Troisième élément

Code HTML correspondant :

<ol><li>Premier élément</li><li>Deuxième élément</li><li>Troisième élément</li></ol>

Vous pouvez combiner des listes à puces et des listes ordonnées :

* À faire ce jour
*# Manger
* À faire faire
*# Ceci
*# Cela
*## Et le reste

Affichera ceci :

  • À faire ce jour
    1. Manger
  • À faire faire
    1. Ceci
    2. Cela
      1. Et le reste

Code HTML correspondant :

<ul><li>À faire ce jour<ol><li>Manger</li></ol></li><li>À faire faire<ol><li>Ceci</li><li>Cela<ol><li>Et le reste</li></ol></li></ol></li></ul>

L'exemple inverse, avec les nombres en premier niveau :

# À faire ce jour
#* Manger
# À faire faire
#* Ceci
#* Cela
#** Et le reste

Affichera ceci :

  1. À faire ce jour
    • Manger
  2. À faire faire
    • Ceci
    • Cela
      • Et le reste

Code HTML correspondant :

<ol><li>À faire ce jour<ul><li>Manger</li></ul></li><li>À faire faire<ul><li>Ceci</li><li>Cela<ul><li>Et le reste</li></ul></li></ul></li></ol>

Les classes CSS

Vous pouvez affecter une classe CSS à l'un des membres de la liste en procédant ainsi :

* Liste Un
*.MaClasse Liste Deux
* Liste Trois

Affichera ceci :

  • Liste Un
  • Liste Deux
  • Liste Trois

Code HTML correspondant :

<ul><li>Liste Un</li><li class="MaClasse">Liste Deux</li><li>Liste Trois</li></ul>

Combiner listes et citations en blocs

Noter que les Citations en bloc en WikiTexte peuvent être combinées aux listes. Par exemple :

* Liste Une 
** Liste deux
**> Un bloc
**> Un autre bloc
* Liste trois

Affichera ceci :

  • Liste Une
    • Liste deux
      Un bloc
      Un autre bloc
  • Liste trois

Code HTML correspondant :

<ul><li>Liste Une <ul><li>Liste deux<blockquote><div>Un bloc</div><div>Un autre bloc</div></blockquote></li></ul></li><li>Liste trois</li></ul>

Les paragraphes dans les listes

Les entrées d'une liste sont séparées par des sauts de ligne, rendant impossible d'y inclure des sauts de lignes sans passer à l'entrée suivante. Deux contournements sont possibles.

En un, vous pouvez transclure dans le paragraphe le contenu d'un autre tiddler. Par exemple :

* Première entrée
* <$transclude tiddler="MonTiddler" mode="block"/>
* Troisième

En deux, vous pouvez utiliser la balise HTML "div" pour inclure un contenu multiligne. Par exemple :

# Étape 1
# Étape 2
# Étape 3<div>

Ici, le premier parmi plusieurs paragraphes. Notez que le double saut de ligne précédant ce paragraphe est pris en compte.

Et ici, le deuxième parmi plusieurs paragraphes.
</div>
# Étape 4
# Étape 5
# Étape 6

Widget list

 20 juin 2015 à 9h03

Le widget ListWidget affiche la suite de tiddlers qui correspondent au tiddler filtre. Il répond à de nombreux cas d'utilisation :

  • Affichage de listes personnalisées de liens, comme le menu latéral de TiddlyWiki5
  • Listes personnalisées, comme "tous les tiddlers étiquetés 'task' et non-étiquetés 'fait'"
  • Lister chacun des tags appliqués au tiddler
  • Manipuler le déroulé principal

Les tiddlers sont affichés en transcluant chacun tour à tour via un gabarit. Il existe plusieurs façons de spécifier le gabarit et de contrôler le comportement de la liste.

Exemples

Liste brute

<$list filter="[tag[ListWidget]sort[title]]"/>

Affichera  :

GroupedLists

Sorties personnalisées

<$list filter="[tag[ListWidget]sort[title]]">
<<currentTiddler>>
{{||$:/core/ui/ViewTemplate/tags}}
</$list>

Affichera  :

GroupedLists

Gabarit personnalisé

<$list filter="[tag[ListWidget]sort[title]]" template="$:/core/ui/ViewTemplate/subtitle"/>

Affichera  :

 19 juin 2015 à 16h11

Listes Groupées

Se reporter à Listes imbriquées pour voir comment générer des listes groupées et imbriquées en utilisant le widget list.

Contenu et Attributs

Le contenu du widget <$list> est un gabarit optionnel à utiliser pour l'affichage de chaque tiddler de la liste. Autrement, le gabarit peut être spécifié comme titre du tiddler dans le gabarit attribut. En l'absence de directive, le gabarit par défaut affiche juste le titre du tiddler.

AttributDescription
filterLe filtre du tiddler à afficher
templateLe titre du tiddler gabarit pour transclure chaque tiddler de la liste. Si aucun gabarit n'est spécifié, Le corps du widget list sert de gabarit. En l'absence de corps, un simple lien vers le tiddler est renvoyé.
editTemplateUn gabarit différent pour la modification des Ébauches de Tiddlers en mode édition
variableLe nom d'une variable dans laquelle le titre de chaque tiddler listé est mémorisé. Par défaut currentTiddler
emptyMessageMessage à afficher quand la liste est vide
storyviewNom optionnel du module responsable de l'animation/traitement de la liste
historyLe titre du tiddler contenant l'historique de navigation

Mode édition

Le widget <$list> peut afficher de façon optionnelle les tiddlers ébauche via un gabarit différent lors de l'édition, voir Mécanisme d'Ébauche.

attribut storyview

L'attribut optionnel storyview indique le nom du module qui anime les changements dans la liste (incluant la navigation). Le noyau intègre les animations (storyview) suivantes :

  • classic : affiche la liste comme une séquence ordonnée de tiddlers
  • zoomin : affiche juste le tiddler courant dans la liste, avec une animation zoom à la navigation entre les tiddlers
  • pop : rétrécit les éléments sur place

Afin que les storyviews s'animent correctement, chaque entrée de la liste doit être un élément du DOM en mode bloc unique.

Historique et navigation

L'attribut optionnel history indique le nom du tiddler utilisé pour tracer le tiddler en cours pour les besoins de la navigation. Quand le tiddler history change, l'affichage de la liste répond en demandant à listview de diriger la navigation jusqu'au nouveau tiddler. Voir Mécanisme Historique pour les détails.

Literal Attribute Values

 15 juin 2023 à 5h54

Literal attribute values can use several different styles of quoting:

  • Single quotes (eg attr='value')
  • Double quotes (eg attr="value")
  • Tripe double quotes (eg attr="""value""")
  • No quoting is necessary for values that do not contain spaces (eg attr=value)

Literal attribute values can include line breaks. For example:

<div data-address="Mouse House,
Mouse Lane,
Rodentville,
Ratland."/>

By using triple-double quotes you can specify attribute values that contain single double quotes. For example:

<div data-address="""Mouse House,
"Mouse" Lane,
Rodentville,
Ratland."""/>

LoadCommand

 19 janvier 2014 à 20h15

Charge des tiddlers à partir de fichiers TiddlyWikiClassic 2.x.x (.html), .tiddler, .tid, .json ou d'autres types de fichiers. Le traitement appliqué aux fichiers entrants est déterminé par l'extension du fichier. Utilisez plutôt la commande import si vous devez spécifier explicitement le désérialiseur et l'encodage.

--load <chemindufichier> [noerror]
--load <chemindurépertoire> [noerror]

Par défaut, la commande load provoque une erreur si aucun tiddler n'est trouvé. L'erreur peut être supprimée en spécifiant le paramètre optionnel "noerror".

Pour charger des tiddlers à partir d'un fichier TiddlyWiki chiffré, vous devrez d'abord spécifier le mot de passe à l'aide de la commande password. Par exemple :

tiddlywiki ./MonWiki --password pa55w0rd --load mon_wiki_secret.html

À noter : TiddlyWiki refusera de charger une version plus ancienne d'un plugin déjà chargé.

Locator plugin by bimlas

 6 janvier 2021 à 15h10

For those who use many tags or store many different topics in a common wiki the Locator plugin is a table of contents widget and an enhanced search engine that gives you the opportunity to filter results by related tags. Unlike table of contents, standard search and list of tags, this plugin offers these features in an organic, collaborative way.

https://bimlas.gitlab.io/tw5-locator/

log Operator

 20 novembre 2020 à 4h14
purposetreating each input title as a number, return its logarithm with base equal to the numeric value of the operand if specified, otherwise base e
inputa selection of titles
parameterN = a number
outputthe logarithm of each input title as numbers, with base N if specified otherwise base e

Learn more about how to use Filters

Depuis : 5.1.23

Examples

log Operator (Examples)

 20 novembre 2020 à 4h20

Logarithm of 8 with base 2:

[[8]log[2]]

Logarithm of 100 with base 10:

[[100]log[10]]

Natural logarithm of 10 (base e), equivalent to ln(10) in mathematics:

[[10]log[]]

LogWidget

 20 novembre 2020 à 15h49

Introduction

Depuis : 5.1.23 The log widget can be used to output debugging information to the JavaScript console supported by most browsers.

For use with ActionWidgets see ActionLogWidget which uses identical parameters

Content and Attributes

The log widget is invisible. Any content within it is ignored. Note that the widget will log to the console both when it is first rendered and also every time it refreshes.

When the widget is rendered, the names and values of all attributes are logged to the JavaScript console. In addition there are optional attributes that can be used:

Optional AttributeDescription
$$filterAll variables matching this filter will also be logged.
$$messageA message to display as the title of the information logged. Useful when several log widgets are used in sequence.
$$allSet to "yes" to log all variables in a collapsed table. Note that if there is nothing specified to log, all variables are always logged instead.

Example

Here is an example of logging two variables:

<$log myVar=<<myVar>> otherVar=<<otherVar>>/>

To log all variables:

<$log />

To log two variables as well as all core variables (which start with tv-):

<$log myVar=<<myVar>> other={{!!status}} $$filter="[prefix[tv-]]"/>

lookup Operator

 16 janvier 2021 à 8h13
purposeapplies a prefix to each input title to yield the title of a tiddler from which the final value is retrieved. With a single parameter, the default field is "text" and the default index is "0". If a second parameter is provided, that becomes the target field or index.
inputa selection of titles
suffixD, I = the default value to be used for missing lookups. This operator can now accept a second suffix of :index, see below for details
parameterP, T = prefix applied to input titles to yield title of lookup tiddler from which value is retrieved. Now accepts 1 or 2 parameters, see below for details
outputthe lookup values corresponding to each lookup tiddler

Learn more about how to use Filters

Depuis : 5.1.15

The action of this operator is as follows with 1 parameter:

  • Apply the specified prefix to each input tiddler title, yielding a new list of tiddler titles
  • Transclude the value of the text field each of those tiddlers
    • Substitute the default value for missing or empty values
  • Return the list of values

Depuis : 5.2.2

The use of the :index second suffix changes the default lookup location from field: text to index: 0. This is used if no 2nd parameter is provided.

The action of this operator is as follows with 2 parameters:

If there are two parameters provided, use the second parameter as the target field or index.

Note
If there is only one parameter given, the filter checks for a second suffix equal to "index". If this suffix is found, the default target index is "0".

In all other cases, the default target field is "text".

Then:

  • Apply the specified prefix to each input tiddler title, yielding a new list of tiddler titles
  • Transclude the value of the target field or index
    • Substitute the default value for missing or empty values
  • Return the list of values

Examples

lookup Operator (Examples)

 18 novembre 2021 à 2h54

[all[shadows+tiddlers]tag[$:/tags/PageControls]lookup[$:/config/PageControlButtons/Visibility/]]
→ Retrieve the visibility status of each page control button

[all[shadows+tiddlers]tag[$:/tags/PageControls]lookup:show[$:/config/PageControlButtons/Visibility/]]
→ Retrieve the visibility status of each page control button, this time with a default value

[all[tiddlers]has[plugin-type]removeprefix[$:/plugins/tiddlywiki/]lookup:missing-description:field[$:/plugins/tiddlywiki/],[description]]
→ Retrieve the description of all plugin-tiddlers that are in the $:/plugins/tiddlywiki/ namespace.

OriginalTiddlerPaths +[lookup:missing-index:index[$:/config/],[HelloThere]]
→ Lookup the original tiddler path on disk for the Hello There tiddler.

OriginalTiddlerPaths +[lookup:missing-index:index[$:/config/],[MissingTiddler]]
→ Lookup the original tiddler path on disk for the MissingTiddler tiddler.

HistoryList MissingHistoryList +[lookup:missing-0:index[$:/]]
→ Retrieve index 0 from the $:/HistoryList and $:/MissingHistoryList.

OriginalTiddlerPaths MissingTiddlerPaths +[lookup:missing-tiddler:index[$:/config/],[$:/key-test]]
→ Retrieve index $:/key-test from $:/config/OriginalTiddlerPaths and $:/config/MissingTiddlerPaths.

lowercase Operator

 19 juin 2019 à 12h08
purposereturns each item in the list as lowercase
inputa selection of titles
outputthe input titles with each uppercase letter replaced by the equivalent lowercase letter

Learn more about how to use Filters

Depuis : 5.1.20

See also uppercase Operator and sentencecase Operator.

Examples

lowercase Operator (Examples)

 13 juin 2019 à 16h38

[[Abc]lowercase[]]

[tag[HelloThere]lowercase[]]

Syntaxe de l'appel de Macro

 2 juin 2015 à 13h17
What follows is a formal presentation of the syntax of the WikiText syntax for macro calls, using railroad diagrams. A simpler overview is also available.
<<nomespaceparam-valeur>>

espace denotes a sequence of whitespace characters.

The macro's name is a sequence of non-whitespace characters autre que ( or >.

Each individual param-value has the following syntax:

param-nomespace:espacevaleurespace

The param-nom is a sequence of letters (AZ, az), digits (09), hyphens (-) and underscores (_).

The valeur is specified as follows :

"""tout sauf """""""tout sauf ""'tout sauf ''[[tout sauf ]]]tout sauf ' " ou espacevierge

Macro Calls

 19 avril 2023 à 11h31

Introduction

This tiddler describes the different ways in which macros can be called.

Macro Call Transclusion Shortcut

To call a macro, place <<double angle brackets>> around the name and any parameter values.

<<mymacro param:"This is the parameter value">>

By default, parameters are listed in the same order as in the macro's definition. A parameter can be labelled with its name and a colon to allow them to be listed in a different order.

If no value is specified for a parameter, the default value given for that parameter in the macro definition is used instead. (If no default value was defined, the parameter is blank).

Each parameter value can be enclosed in 'single quotes', "double quotes", """triple double quotes""" or [[double square brackets]]. Triple double quotes allow a value to contain almost anything. If a value contains no spaces or single or double quotes, it requires no delimiters.

A more formal presentation of this syntax is also available.

See some examples and discussion about parser modes.

Macro Calls with $transclude Widget

The shortcut syntax expands to the $transclude widget with the $variable attribute specifying the name of the macro to transclude.

<$transclude $variable="mymacro" param="This is the parameter value"/>

The widget itself offers greater flexibility than the shortcut syntax, including the ability to specify parameter values.

Assigning Macro Calls to Attribute Values

The result of a macro can be directly assigned to an attribute of a widget or HTML element. The result of the macro is not wikified, but the parameter substitution is performed.

<div class=<<myclasses "Horizontal">>>
...
</div>

Using Macro Calls in Filters

Macro calls can be used in filters:

<$list filter="[<mymacro param:'value'>]">
...
</$list>

Appel de macro en WikiTexte

 22 avril 2022 à 23h58

Pour appeler une macro, placez des <<doubles parenthèses en équerre>> autour de son nom et des valeurs de ses paramètres. ex : <<maMacro val1 val2 ... valn>>

Par défaut, les paramètres sont passés dans l'ordre fixé lors de la définition de la macro. Un paramètre peut être identifié par son nom, pour plus de clarté ou pour pouvoir les utiliser dans le désordre.

Si aucune valeur n'est fournie pour un paramètre, la valeur par défaut fixée lors de la définition de la macro est utilisée (si aucune valeur par défaut n'est définie, le paramètre est tout simplement vide).

Chaque valeur de paramètre peut être délimitée par des 'simples cotes', des "doubles cotes", des """doubles cotes triplées""" ou des [[doubles crochets]]. Les doubles cotes triplées permettent de passer à peu près toutes les valeurs. Si une valeur ne contient ni espace, ni simple ou double cotes, les délimiteurs sont inutiles.

Une description plus formelle de cette syntaxe est aussi disponible.

Cette syntaxe est une forme abrégée du widget $macrocall. Le widget en lui-même permet une plus grande flexibilité, incluant la capacité de transclure des valeurs de paramètres ou de les générer via des macros additionnelles.

Comme les macros sont de simples variables paramétrées, des valeurs de variables peuvent être insérées en faisant appel aux mêmes techniques.

Des exemples et d'autres exemples sont à votre disposition.

Paramètres nommés ou anonymes

En WikiTexte, nommer les paramètres lors de l'appel aux macros est toujours le choix le plus sûr par rapport à l'utilisation de valeurs anonymes. Ne pas utiliser le nom des paramètres peut avoir des effets indésirables perturbants. Imaginez par exemple que le premier paramètre d'une macro serve à spécifier le nom d'un tiddler d'état, et que le second soit destiné à préciser un tiddler gabarit. Si vous deviez par mégarde oublier de définir la valeur du premier paramètre ou vous tromper dans l'ordre des paramètres, au prochain appel de la macro (qui pourrait même avoir lieu en prévisualisant votre tiddler) votre gabarit pourrait être malencontreusement écrasé avec le contenu destiné au tiddler d'état.

L'appel de macro dans WikiText (Exemples)

 21 juin 2015 à 16h17

\define sayhi(name:"Bugs Bunny" address:"Rabbit Hole Hill")
Salut, Je suis $name$ et je vis à $address$.
\end
<<sayhi>>
<<sayhi Bugs>>
<<sayhi "Donald Duck" Disneyland>>
<<sayhi "Mickey Mouse" "Mouse House">>
<<sayhi name:'Minnie Mouse' address:[[Mouse House]]>>
<<sayhi address:"Quacky Towers" name:"Donald Duck">>
<<sayhi "Mickey Mouse" """"Mouse House",
Rodent's Lane,
Squeaksville,
Ratland""">>

Syntaxe de la définition d'une macro

 4 juin 2015 à 10h45
Ce qui suit est la description formelle de la syntaxe du pragma \define, par des diagrammes en chemin de fer. Une présentation simplifiée est aussi disponible.
\defineespacenomparametresespacesuite

espace représente une série d'espaces vierges.

Le nom de macro est une série de caractères sans espace, autres que ( ou >.

La liste de déclaration de paramètre (parametres) a la syntaxe suivante :

(sepparametresep)

Le séparateur de paramètres (sep) est toute série de caractères différente d'un nom de paramètre (parametre.nom). Entre autre chose, cela comprend les virgules, les espaces et les sautsdeligne.

Un parametre.nom est une suite de lettres (AZ, az), de chiffres (09), de tirets (-) de soulignés (_).

Chaque parametre a, respectivement, la syntaxe suivante :

parametre.nomespace:espacedefaut)

La valeur par défaut d'un paramètre est spécifiée comme suit :

"""tout sauf """""""tout sauf ""'tout sauf ''[[tout sauf ]]]tout sauf ' " ou espacevierge

La définition de la suite se fait comme suit :

code.extraitSicode.extraitSi\endespaceSi

Si marque un saut de ligne.

Un code.extrait correspond à toute suite de caractère qui ne termine pas la définition de la macro. Ce qui veut dire qu'un extrait de code, s'il comporte une ligne unique, ne peut comporter de sautdeligne ou s'il occupe plusieurs lignes ne peut comporter de \end.

L'extrait de code peut contenir des ZoneRéservée en utilisant la syntaxe suivante:

$nom$$(nom)$

Macro Definitions

 19 avril 2023 à 11h31

Introduction

This tiddler describes the different ways in which macros can be defined.

Macro Definition Pragma

Macros are created using the Pragma: \define at the start of a tiddler. The definitions are available in the rest of the tiddler that defines them, plus any tiddlers that it transcludes.

\define mymacro(param)
This is the macro text (param=$param$)
\end

Nested Macro Definitions

Macro definitions can be nested to any number of required levels by specifying the name of the macro in the \end marker. Nested macro definitions must appear at the start of the definition that contains them. For example:

\define special-button(caption:"Click me")
\define actions()
<$action-sendmessage $message="tm-notify" $param="HelloThere"/>
\end actions
<$button actions=<<actions>>>
$caption$
</$button>
\end special-button

<<special-button>>

Affichera ceci :

Note that the textual substitution of macro parameters that occurs when the outer macro is rendered will apply to the nested definitions as well. That generally means that textual substitution of macro parameters should not be used within nested macros.

Parameters of nested macros can also be accessed via the <<__variablename__>> syntax. As ordinary variables, these parameters are available within nested child macros (and grandchildren etc).

Macro Definition with Set Widget

Macros are implemented as a special type of variable and so internally are actually defined with a $set widget.

<$set name="mymacro" value="This is the macro text">
...
</$set>
Note
that it is not currently possible to specify parameters when defining a macro with the $set widget.

Importing Macro Definitions

The Pragma: \import or $importvariables widget can be used to copy macro definitions from another tiddler.

$:/tags/Macro Tag

Global macros can be defined using the SystemTag: $:/tags/Macro.

The tag SystemTag: $:/tags/Macro/View is used to define macros that should only be available within the main view template and the preview panel.

The tag SystemTag: $:/tags/Macro/View/Body is used to define macros that should only be available within the main view template body and the preview panel.

JavaScript Macros

Macros can also be written as JavaScript modules.

Définitions de macros en WikiText

 24 juin 2015 à 10h49

Une macro est définie par l'utilisation du pragma \define. Comme tout pragma, il peut seulement prendre place au début d'un tiddler.

La première ligne de la définition indique le nom de la macro suivi de ses paramètres. Chaque paramètre a un nom, et de façon optionnelle une valeur par défaut utilisée si aucune valeur n'est passée lors de l'appel de la macro. Les lignes qui suivent contiennent le texte de la macro (càd l'extrait de code représenté par le nom de la macro), jusqu'à l'apparition du \end :

\define sayhi(name:"Bugs Bunny" address:"Rabbit Hole Hill")
Salut, Je suis $name$ et je vis à $address$.
\end

Vous pouvez éviter l'utilisation du marqueur final \end, en rédigeant toute la définition sur une seule ligne :

\define sayhi(name:"Bugs Bunny") Salut, Je suis $name$.

Une présentation plus formelle de cette syntaxe est aussi disponible.

ZoneRéservée

Les extraits de code peuvent utiliser des Zones Réservées en paramètres. Il suffira de placer le nom du paramètre entre les signes dollar, comme $ceci$.

Il est aussi possible d'utiliser des Zones Réservées comme variables. Il suffira de placer le nom de la variable (ou du nom de la macro) entre les signes dollar entourés de parenthèses, comme $(ceci)$.

À la valeur actuelle du paramètre ou de la variable se substituera celle portée par le ZoneRéservée lors de l'appel de la macro :

\define say-hi-using-variables()
Salut, je suis $(name)$ et je vis à $(address)$.
\end

\define name() Bugs
<$set name="address" value="Rabbit Hole Hill">
<<say-hi-using-variables>>
</$set>

Étendue

Les macros peuvent être utilisées dans le tiddler où elles sont définies, ainsi que tous les tiddlers qui le transclus.

Pour étendre l'utilisation d'une macro à tous les tiddlers, définissez-la dans un tiddler étiqueté $:/tags/Macro.

Il est aussi possible de développer une macro dans un module JavaScript. Les macros JavaScript sont disponibles dans tous les tiddlers, et offrent un maximum de flexibilité.

On peut importer dans un tiddler les définitions de macros d'une sélection d'autres tiddlers en utilisant le widget $importvariables.

Macro Parameter Handling

 19 avril 2023 à 11h31

Introduction

Macros parameters are handled in two different ways:

  1. Textual substitution is always performed for each parameter before the macro contents is used
  2. When the macro contents are wikified the parameters are made available as variables. The variable names are formed by wrapping the parameter name with double underscores

Somewhat confusingly, in some situations both of these mechanisms will occur; this is related to the pitfalls of using macros.

Textual Substitution of Parameters and variables

The following substitutions take place before the text of a macro is used:

  • The pattern $param$ is replaced with the value of the named parameter
  • The pattern $(variable)$ is replaced with the value of the named variable

The actual value of the parameter or variable is substituted for the placeholder whenever the macro is called:

\define say-hi-using-parameters(name,address)
Hi, I'm $name$ and I live in $address$.
\end

<<say-hi-using-parameters name:"Bugs" address:"Rabbit Hole Hill">>

Affichera ceci :

Hi, I'm Bugs and I live in Rabbit Hole Hill.

Here's an example using variable substitution:

\define say-hi-using-variables()
Hi, I'm  and I live in .
\end

\define name() Bugs

<$let address="Rabbit Hole Hill">
<<say-hi-using-variables>>
</$let>

Affichera ceci :

Hi, I'm and I live in .

It is important to note that if the text being inserted contains any substitution tokens then they will in turn be processed. This can lead to unexpected results.

Accessing Parameters as Variables

When macros are wikified, the parameters can be accessed as variables with the name of the parameter wrapped with double underscores. For example, the parameter address would be accessed as the variable __address__.

Thus, the example above could also be expressed as:

\define say-hi-using-parameters(name,address)
Hi, I'm <<__name__>> and I live in <<__address__>>.
\end

<<say-hi-using-parameters name:"Bugs" address:"Rabbit Hole Hill">>

Affichera ceci :

Hi, I'm Bugs and I live in Rabbit Hole Hill.

Accessing parameters as variables only works in macros that are wikified and not, for example, when a macro is used as an attribute value.

Advantages of Accessing Parameters as Variables

The primary advantage of the technique is that it avoids the parameter value being substituted into the macro as a literal string, which in turn can help avoid issues with parameters that contain quotes.

For example, consider this macro. It invokes another macro using the single parameter as an argument for it:

\define film-quote(line) <$macrocall $name="anothermacro" actor="Bugs Bunny" line="""$line$"""/>

The code above will fail if the macro is invoked with the argument containing triple double quotes (for example <<film-quote 'I quote thrice """ - see!?'>>). Using parameter variables offers a workaround:

\define film-quote(line) <$macrocall $name="anothermacro" actor="Bugs Bunny" line=<<__line__>>/>

See Macro Pitfalls for more discussion.

Macro Pitfalls

 19 avril 2023 à 11h31

Introduction

In the early days of TiddlyWiki, macros were the best way of encapsulating snippets for reuse, and so they were used extensively. However, they have always suffered from some significant disadvantages that can give rise to errors and poor performance.

Depuis : 5.3.0 Macros have been joined by Procedures, Custom Widgets and Functions which together provide more robust and flexible ways to encapsulate and re-use code. It is now recommended to only use macros when textual substitution is specifically required.

Shortcomings of Textual Substitution

TiddlyWiki's handling of macro parameters is based on "textual substitution" which means that the string values of the parameters provided when calling a macro are plugged into the macro definition before it is wikified.

Here's a typical example of the approach in early versions of TiddlyWiki 5. The intention is to provide a macro that takes a single parameter of the title of the tiddler to view:

\define mymacro(title)
<$codeblock code={{$title$}}/>
\end

That works for simple cases like <<mymacro "HelloThere">> but is subtly brittle. For example, the macro above would fail with tiddler titles containing double closing curly braces. Trying to use it with the title foo}}bar would lead to the macro being expanded to the following invalid syntax:

<$codeblock code={{foo}}bar}}/>

As a result of this issue, for many years the TiddlyWiki 5 user interface failed if a variety of combinations of special characters were encountered in tiddler titles.

This issue has been mitigated over the years, particularly by providing access to the macro parameters as variables. However, for backwards compatibility, this was done without affecting the existing syntax, which required us to adopt the clumsy protocol of wrapping the parameter name in double underscores to get the name of the corresponding variable.

Performance of Global Macros

Global Macro Definitions defined with the SystemTag: $:/tags/Macro suffer from poor performance because every macro has to be parsed regardless of whether it is actually used.

Furthermore, the way that definitions are imported means that updating a tiddler tagged SystemTag: $:/tags/Macro will cause the entire page to be refreshed.

Syntaxe des Macro

 2 juin 2015 à 13h27

Widget macrocall

 19 juin 2015 à 13h07

Introduction

Le widget d'appel de macro propose une syntaxe alternative pour invoquer des macros. L'avantage de la forme de ce widget est de passer des paramètres de macro en attributs de widget, ce qui permet d'utiliser des indirections et d'affecter des valeurs de macro.

Par exemple, une macro appelée italicise ayant pour seul paramètre texte peut être invoquée de ces différentes façons :

<<italicise "Texte à mettre en italiques">>
<<italicise text:"Texte à mettre en italiques">>
<$macrocall $name="italicise" text="Texte à mettre en italiques"/>
<$macrocall $name="italicise" text={{Titre du tiddler contenant le Texte à mettre en italiques}}/>
<$macrocall $name="italicise" text=<<textMaker "Une autre macro pour générer du texte à italiciser">>/>

Vous pouvez examiner plusieurs exemples du widget d'appel de macro dans le noyau :

Contenu et Attributs

Le contenu du widget <$macrocall> est ignoré.

AttributDescription
$nameNom de la macro appelée
$typeType de contenu par lequel le texte entrée sera analysé (par défault text/vnd.tiddlywiki)
$outputType de contenu affiché en sortie (par défaut text/html, peut aussi être text/plain)
parametersParamètres de macro spécifiés comme attributs

Macros

 19 février 2022 à 19h29

Une macro est un bout de texte auquel on donne un nom. Le WikiTexte utilise ce nom comme raccourci pour transclure le bout de texte. Ces transclusions particulières s'appellent des appels de macro, et chaque appel peut transmettre un ensemble différent d'arguments, qui se substituent à leur emplacement dans le bout de texte.

Pour une description de la syntaxe, voir Macros en WikiTexte.

La plupart des macros sont en fait des variables paramétrées.

Elles sont définies en utilisant le pragma \define. (En coulisses, cette syntaxe est transformé en Widget set, donc les macros et les variables sont bien les deux faces de la même pièce.)

Le bout de texte et ses arguments sont traités comme de simple chaînes de caractères, sans interprétation du WikiTexte, au moins jusqu'à ce que le dernier emplacement ait été rempli et que l'appel de macro soit terminé. Cela signifie qu'une macro peut assembler et renvoyer la syntaxe complète d'un composant WikiTexte, comme un lien par exemple. (Voir Transclusion et substitution pour une discussion plus approfondie sur ce sujet.)

A l'intérieur d'un bout de texte lui-même, le seul balisage détecté est $nom$ (un emplacement pour le paramètre nom qui sera substitué par l'argument correspondant reçu au moment d'un appel de macro) et $(nom)$ (un emplacement pour une variable).

La macro dumpvariables liste toutes les variables (y-compris les macros) qui sont disponibles à cet endroit de l'arborescence des widgets.

Un widget $importvariables peut être utilisé pour copier une définition de macro vers une autre branche de l'arbre des widgets. TiddlyWiki utilise cette technique en interne pour implémenter des macros globales – c'est-à-dire des macros définies dans des tiddlers étiquetés $:/tags/Macro. (Le tag $:/tags/Macro/View est quant à lui utilisé pour définir des macros qui ne doivent être disponibles que dans le modèle de vue principal et le panneau de prévisualisation.)

Pour un maximum de flexibilité, les macros peuvent aussi être écrites en tant que modules JavaScript.

Un effet similaire à l'utilisation de macros paramétrées peut être obtenu en encadrant une transclusion par une définition de variables.

TiddlyWiki intègre plusieurs macros dans son cœur.

Macros en WikiTexte

 19 février 2022 à 19h12

L'utilisation des macros en WikiTexte recouvre deux aspects distincts :

Faire les lits

 19 novembre 2014 à 22h59

Il s'agit de l'une des tâches pour l'exemple de gestion de tâches

makedatauri Macro

 30 mars 2020 à 11h53

The makedatauri macro takes a piece of text and an associated ContentType, and returns a corresponding data URI.

makedatauri is used to implement the datauri macro.

Parameters

text
The text to be converted to a data URI
type
The ContentType of the text
_canonical_uri
The optional _canonical_uri address of the content

Exemples

makedatauri Macro (Examples)

 21 février 2015 à 22h36

<<makedatauri "some example text" "text/plain">>

MakeLibraryCommand

 15 novembre 2014 à 22h23

Construit le tiddler $:/UpgradeLibrary pour la procédure de mise à jour.

La bibliothèque de mise à jour est formatée comme un tiddler de plugin ordinaire avec le type library. Elle contient un exemplaire de chacun des packs de plugins, thèmes et languages disponibles dans le répertoire de TiddlyWiki5.

Cette commande est prévue pour un usage interne ; elle n'a d'intérêt que pour les utilisateurs qui construisent une variante de la procédure de mise à jour.

--makelibrary <titre>

L'argument titre a pour valeur par défaut $:/UpgradeLibrary.

Voir le mécanisme de mise à jour pour plus de détails.

makepatches and applypatches Operator (Examples)

 4 mars 2023 à 16h03

These examples use the example texts in Hamlet, taken from https://neil.fraser.name/software/diff_match_patch/demos/patch.html

Shakespeare's originalHamlet: Do you see yonder cloud that's almost in shape of a camel? Polonius: By the mass, and 'tis like a camel, indeed. Hamlet: Methinks it is like a weasel. Polonius: It is backed like a weasel. Hamlet: Or like a whale? Polonius: Very like a whale. – Shakespeare
Modern EnglishHamlet: Do you see the cloud over there that's almost the shape of a camel? Polonius: By golly, it is like a camel, indeed. Hamlet: I think it looks like a weasel. Polonius: It is shaped like a weasel. Hamlet: Or like a whale? Polonius: It's totally like a whale. – Shakespeare
Trekkie's CopyKirk: Do you see yonder cloud that's almost in shape of a Klingon? Spock: By the mass, and 'tis like a Klingon, indeed. Kirk: Methinks it is like a Vulcan. Spock: It is backed like a Vulcan. Kirk: Or like a Romulan? Spock: Very like a Romulan. – Trekkie

Use makepatches to generate the set of patches to transform Shakepeare's original into Modern English:

[{Hamlet##Shakespeare-old}makepatches{Hamlet##Shakespeare-new}]

Use applypatches to apply the patches to Shakespeare's original text:

[{Hamlet##Shakespeare-old}makepatches{Hamlet##Shakespeare-new}] :map[{Hamlet##Shakespeare-old}applypatches<currentTiddler>]

In the above example, the Map Filter Run Prefix is used to pass the patches information as a parameter to applypatches. Inside :map, currentTiddler is set to the input title (i.e. the previously generated patches).

The patch information from the Shakepeare texts can also be used to transform the Trekkie's Copy to a Modern English version:

[{Hamlet##Shakespeare-old}makepatches{Hamlet##Shakespeare-new}] :map[{Hamlet##Trekkie-old}applypatches<currentTiddler>]

The above examples used the character mode of makepatches. The word mode yields very similar results in this case, even when applied to the Trekkie's Copy.

[{Hamlet##Shakespeare-old}makepatches:words{Hamlet##Shakespeare-new}]

[{Hamlet##Shakespeare-old}makepatches:words{Hamlet##Shakespeare-new}] :map[{Hamlet##Trekkie-old}applypatches<currentTiddler>]

The lines mode doesn't work as well in this application:

[{Hamlet##Shakespeare-old}makepatches:lines{Hamlet##Shakespeare-new}]

[{Hamlet##Shakespeare-old}makepatches:lines{Hamlet##Shakespeare-new}] :map[{Hamlet##Trekkie-old}applypatches<currentTiddler>]

It is better suited as a very fast algorithm to detect line-wise incremental changes to texts and store only the changes instead of multiple versions of the whole texts.

makepatches Operator

 4 mars 2023 à 12h24
purposereturns a set of patches that transform the input to a given string
inputa selection of titles
suffixT = lines to operate in line mode, words to operate in word mode. If omitted (default), the algorithm operates in character mode. See notes below.
parameterS = a string of characters
outputa set of patch instructions per input title to be used by the applypatches Operator to transform the input title(s) into the string S

Learn more about how to use Filters

Depuis : 5.2.6

The difference algorithm operates in character mode by default. This produces the most detailed diff possible. In words mode, each word in the input text is transformed into a meta-character, upon which the algorithm then operates. In the default character mode, the filter would find two patches between "ActionWidget" and "Action-Widgets" (the hyphen and the plural s), while in words mode, the whole word is found to be changed. In lines mode, the meta-character is formed from the whole line, delimited by newline characters, and is found to be changed independent of the number of changes within the line.

The different modes influence the result when the patches are applied to texts other than the original, as well as the runtime.

The calculation in words mode is roughly 10 times faster than the default character mode, while lines mode can be more than 100 times faster than the default.

Examples

Making a custom journal button

 14 novembre 2017 à 21h58

To get your own custom Journal button, start by cloning the New Journal button.

Then create your own config tiddlers, eg:

  • $:/config/myNewTiddler/Tags and ...
  • $:/config/myNewTiddler/Title and ...
  • $:/config/myNewTiddler/Text

Edit your custom button and "search and replace" the config tiddler names.

Change the following lines, near the end of the tiddler from

<$set name="journalTitleTemplate" value={{$:/config/NewJournal/Title}}>
<$set name="journalTags" value={{$:/config/NewJournal/Tags}}>
<$set name="journalText" value={{$:/config/NewJournal/Text}}>

to

<$set name="journalTitleTemplate" value={{$:/config/myNewTiddler/Title}}>
<$set name="journalTags" value={{$:/config/myNewTiddler/Tags}}>
<$set name="journalText" value={{$:/config/myNewTiddler/Text}}>

if you want to see your config tiddlers in the sidebar use:

<$set name="journalTitleTemplate" value={{config/myNewTiddler/Title}}>
<$set name="journalTags" value={{config/myNewTiddler/Tags}}>
<$set name="journalText" value={{config/myNewTiddler/Text}}>

Tracer un texte incurvé avec SVG

 22 juin 2015 à 6h44

Cette démonstration montre comment utiliser SVG pour faire suivre un chemin incurvé à un texte transclu. Entrez du texte dans la zone çi-dessous pour essayer ; visualiser le code source pour voir examiner le fonctionnement.

Manually installing a plugin

 17 juin 2022 à 12h59

If you want to follow the steps side by side you can .

  1. Create a backup of your current TiddlyWiki HTML file (just in case)
  2. Open your TiddlyWiki in a browser
  3. In another browser window, find a link to the plugin, e.g. https://tiddlywiki.com/plugins/tiddlywiki/katex. You will typically find these links on the home page of the plugin
  4. Drag the link similar to $:/plugins/tiddlywiki/example to the browser window containing your TiddlyWiki
  5. Import the new plugin shown in the $:/Import tiddler
  6. Save your TiddlyWiki ( )
  7. If a yellow warning bar appears at the top of the window, refresh the window so that TiddlyWiki completes installation of the plugin
    • Depuis : 5.1.22 It is no longer necessary to refresh TiddlyWiki when deleting plugins that support dynamic loading. See PluginMechanism for more details
  8. The plugin should now be available for use
Note
More information about installing a plugin form the official plugin library, can be found at Installing a plugin from the plugin library
An overview can be found at Plugins

Map Filter Run Prefix

 20 juillet 2022 à 20h01

Depuis : 5.2.0

purposemodify input titles by the result of evaluating this filter run for each item
inputall titles from previous filter runs
suffix Depuis : 5.2.3 flat to return all results from the filter run, If omitted (default), only the first result is returned.
outputthe input titles as modified by the result of this filter run

Each input title from previous runs is passed to this run in turn. The filter run transforms the input titles and the output of this run replaces the input title. For example, the filter run [get[caption]else{!!title}] replaces each input title with its caption field, unless the field does not exist in which case the title is preserved.

Note that within the filter run, the "currentTiddler" variable is set to the title of the tiddler being processed. This permits filter runs like :map[{!!price}multiply{!!cost}] to be used for computation. The value of currentTiddler outside the run is available in the variable "..currentTiddler".

The following variables are available within the filter run:

  • currentTiddler - the input title
  • ..currentTiddler - the value of the variable currentTiddler outside the filter run.
  • index - Depuis : 5.2.1 the numeric index of the current list item (with zero being the first item in the list).
  • revIndex - Depuis : 5.2.1 the reverse numeric index of the current list item (with zero being the last item in the list).
  • length - Depuis : 5.2.1 the total length of the input list.

Filter runs used with the :map prefix should return at least the same number of items that they are passed. Any missing entries will be treated as an empty string. In particular, when retrieving the value of a field with the get Operator it is helpful to guard against a missing field value using the else Operator. For example [get[myfield]else[default-value]....

Examples

Map Filter Run Prefix (Examples)

 24 juillet 2022 à 17h23

Replace the input titles with the caption field if it exists, otherwise preserve the input title:

[tag[Widgets]] :map[get[caption]else{!!title}]

The above example is equivalent to [tag[Widgets]] :map[{!!caption}!is[blank]else{!!title}]. Note that referencing a field as a text reference such as {!!caption} returns an empty string for a non-existent or empty caption field. Therefore a check for is[blank] is needed before the else operator

For each title in a shopping list, calculate the total cost of purchasing each item:

[tag[shopping]] :map[get[quantity]else[0]multiply{!!price}]

Get the tags of all tiddlers tagged Widget:

[tag[Widgets]] :map:flat[tagging[]] :and[!is[blank]unique[]]

Without the flat suffix the :map filter run only returns the first result for each input title

Comparison between :map with and without the flat suffix

The :map filter run will return at least as many outputs as given in the input. By default one input item will result in exactly one output item. When the filter run transforms an input item into an empty result, the output for that item will be an empty string. When the filter run transforms an input item into multiple items, only the first item will appear in the output. This behavior can be overridden by providing the flat suffix. The flat suffix will cause all the items to appear in the output.

:map:map:flat
[range[4]] :map[match[this matches nothing]]
[range[4]] :map:flat[match[this matches nothing]]
[range[4]] :map[range<currentTiddler>]
[range[4]] :map:flat[range<currentTiddler>]
[range[4]] :map[range<currentTiddler>]
[range[4]] :map:flat[range<currentTiddler>first[]]
[range[4]] :map[range<currentTiddler>sum[]]
[range[4]] :map:flat[range<currentTiddler>sum[]]
[[1,2,3]] [[4,5]] :map[split[,]]
[[1,2,3]] [[4,5]] :map:flat[split[,]]
[[1,2,3]] [[4,5]] :map[split[,]]
[[1,2,3]] [[4,5]] :map:flat[split[,]first[]]

Comparison between :map and :and/+ filter run prefixes

The functionality of the :map filter run prefix has some overlap with the :and prefix (alias +). They will sometimes return the same results as each other. In at least these cases, the results will be different:

  1. The :and filter run can modify the number of items (either increase or decrease). The :map run will never alter the number of items.
  2. The number of items in the :and filter run will also decrease due to de-duplication. The :map run will not de-duplicate.
  3. Explicit references to the "currentTiddler" variable will behave differently
  4. Implicit references to the "currentTiddler" using TextReference will behave differently.
:map:and
results are the same
[range[5]] :map[add[1]]
[range[5]] :and[add[1]]
[range[5]] :map[addsuffix[ hello]]
[range[5]] :and[addsuffix[ hello]]
[tag[shopping]] :map[get[quantity]]
[tag[shopping]] :and[get[quantity]]
decrease in the number of items
[range[5]] :map[sum[]]
[range[5]] :and[sum[]]
[range[5]] :map[join[,]]
[range[5]] :and[join[,]]
increase in the number of items
[[1,2,3]] [[4,5]] :map[split[,]]
[[1,2,3]] [[4,5]] :and[split[,]]
de-duplication
[range[5]] :map[[hello]]
[range[5]] :and[[hello]]
currentTiddler
[tag[shopping]] :map[<currentTiddler>]
[tag[shopping]] :and[<currentTiddler>]
[tag[shopping]] :map[{!!quantity}]
[tag[shopping]] :and[{!!quantity}]

Markdown

 16 novembre 2014 à 8h58

Markdown est un langage de balisage léger créé par John Gruber et Aaron Swartz en 2004. Son but est d'offrir une syntaxe facile à lire et à écrire.

Wikipedia : http://fr.wikipedia.org/wiki/Markdown

Site web officiel : http://daringfireball.net/projects/markdown/

Plugin Markdown

 15 juin 2015 à 7h54

Le plugin Markdown permet d'utiliser des tiddlers écrits avec les conventions de balisage Markdown standard.

Voir https://tiddlywiki.com/plugins/tiddlywiki/markdown/

match Operator

 31 juillet 2019 à 9h10
purposereturns each item in the list that matches the operand string
inputa selection of titles
suffixthe match operator uses a rich suffix, see below for details
parameterthe string to be matched
outputeach item in the input list that matches the operand string (potentially including duplicates)
! outputeach item in the input list that does not match the operand string

Learn more about how to use Filters

Depuis : 5.1.20

The match operator uses an extended syntax that permits multiple flags to be passed:

[match:<flag list>[<operand>]]
  • flag list: a comma delimited list of flags
  • operand: filter operand

The available flags are:

  • casesensitive: (default), this flag forces a case-sensitive match, where upper and lower case letters are considered different
  • caseinsensitive: overrides the default so that upper and lower case letters are considered identical for matching purposes

Examples

match Operator (Examples)

 31 juillet 2019 à 9h04

a b c +[match[b]]

[match[HelloThere]]

Mathematics Operators

 30 mars 2022 à 14h37

Depuis : 5.1.20The mathematics filter operators allow numerical calculations to be performed within filters.

Using mathematics operators

The mathematics operators interpret their arguments as numbers according to the following rules:

  • Any non-numeric characters after a valid number are ignored (e.g. 28px is interpreted as the number 28)
  • If the argument cannot be interpreted as a number, the value 0 is used (e.g. foo is interpreted as the number 0)
  • The special values Infinity and -Infinity can be used to represent positive and negative infinity respectively

Some filter operators remove duplicate items which can cause unexpected results when using the mathematics operators. See Dominant Append for details.

The mathematics operators take three different forms:

  • Unary operators apply an operation to each number in the input list (e.g. negate, truncate, sign)
  • Binary operators apply an operation and operand to each number in the input list (e.g. add, multiply, remainder)
  • Reducing operators apply an operation to all of the numbers in the input list, returning a single result (e.g. sum, product)

Operations Combination

Operations can be combined by concatenating them while merging the inner ][ characters.

Complex operations will sometimes need to be split up into separate filters. For example, to compute the average length of the text field of tiddlers tagged "HelloThere":

<$set name="number-of-tiddlers" value={{{ [tag[HelloThere]count[]] }}}>
Average length of <$text text=<<number-of-tiddlers>>/> tiddlers tagged <<tag "HelloThere">>: <$text text={{{ [tag[HelloThere]get[text]length[]sum[]divide<number-of-tiddlers>fixed[3]] }}}/>
</$set>

Affichera ceci :

Average length of 9 tiddlers tagged : 1379.444

Mathematics Operators list

Operator Purpose
abs calculate the absolute value of a list of numbers
acos calculate the arccosine value (in radians) of a list of numbers
add treating each input title as a number, add to each the numeric value of the operand
asin calculate the arcsine value (in radians) of a list of numbers
atan calculate the arctangent value (in radians) of a list of numbers
atan2 returns the angle in the plane (in radians) between the positive x-axis and the ray from (0,0) to the point (x,y), for [Y]atan2[X]
average treating each input title as a number, compute their arithmetic mean
ceil rounds a list of numbers up to the next largest integer
compare filter the input by comparing each item against the operand
cos calculate the cosine value of a list of angles (given in radians)
divide treating each input title as a number, divide them by the numeric value of the operand
exponential convert each number to exponential notation with N digits
fixed convert each number to fixed point notation with N digits after the decimal point
floor rounds a list of numbers to the largest integer less than or equal to each number
log treating each input title as a number, return its logarithm with base equal to the numeric value of the operand if specified, otherwise base e
max treating each input title as a number, take the maximum of its value and the numeric value of the operand
maxall find the largest of a list of numbers
median treating each input title as a number, compute their median value
min treating each input title as a number, take the minimum of its value and the numeric value of the operand
minall find the smallest of a list of numbers
multiply treating each input title as a number, multiply it by the numeric value of the operand
negate calculate the negation of a list of numbers
power treating each input title as a number, raise it to the power of the numeric value of the operand
precision convert each number to a string with N significant digits
product produce the product of the input numbers
remainder treating each input title as a number, return the remainder when divided by the numeric value of the operand
round rounds a list of numbers to the nearest integer
sign return -1, 0 or 1 for a list of numbers according to whether each number is negative, zero, or positive
sin calculate the sine value of a list of angles (given in radians)
standard-deviation treating each input title as a number, compute their standard-deviation
subtract treating each input title as a number, subtract from each the numeric value of the operand
sum produce the sum of the input numbers
tan calculate the tangent value of a list of angles (given in radians)
trunc truncates a list of numbers to their integer part, removing any fractional part
untrunc rounds a list of numbers to the next integer with largest absolute value, that is, away from zero
variance treating each input title as a number, compute their variance

MathJax Plugin by Martin Kantor

 6 janvier 2021 à 15h10

An experimental MathJax plugin for TiddlyWiki version 5. As Martin says, the implementation is a bit of a hack but may be useful until we have a better alternative.

http://mathjax-tw5.kantorsite.net

Welcome. I have created plugin for TiddlyWiki 5 which allows you to use MathJax (math in TeX and MathML) inside TiddlyWiki 5. It's unofficial plugin and it doesn't follow general policy of TiddlyWiki as stand-alone solution but it works. So you can use it if you want.

MathML

 23 juin 2015 à 8h19

MathML est un langage de notation pour équations mathématiques qui peut être utilisé en HTML.

Si votre navigateur le supporte, les balises MathML peuvent être manipulées par WikiText comme du HTML.

Voici un exemple d'équation MathML issue du W3C:

<math><mrow><mo>[</mo><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable><mo>]</mo></mrow></math>

Ce qui s'affiche ainsi :

[010001100]

max Operator

 11 juin 2019 à 14h10
purposetreating each input title as a number, take the maximum of its value and the numeric value of the operand
inputa selection of titles
parameterN = a number
outputthe input as numbers, with any that are less than N being replaced by N

Learn more about how to use Filters

Depuis : 5.1.20 See Mathematics Operators for an overview.

See also the min Operator, and compare with the maxall Operator and the minall Operator.

Examples

max Operator (Examples)

 11 juin 2019 à 14h09

[[23]max[32]]

=1 =2 =3 =4 +[max[3]]

maxall Operator

 11 juin 2019 à 17h09
purposefind the largest of a list of numbers
inputa selection of titles
outputthe largest of the input numbers

Learn more about how to use Filters

Depuis : 5.1.20 See Mathematics Operators for an overview.

See also the minall Operator, and compare with the max Operator and the min Operator.

Examples

maxall Operator (Examples)

 11 juin 2019 à 17h10

=1 =2 =3 =4 =5 +[maxall[]]

[tag[HelloThere]get[text]length[]maxall[]]

Mécanismes

 20 juin 2015 à 15h02

median Operator

 26 avril 2021 à 14h15
purposetreating each input title as a number, compute their median value
inputa selection of titles
outputthe median of the input numbers

Learn more about how to use Filters

Depuis : 5.2.0 See Mathematics Operators for an overview.

Examples

median Operator (Examples)

 26 avril 2021 à 14h15

=1 =3 =4 =5 +[median[]]

Note that if there is no input the operator returns NaN

[title[NotATiddler]get[price]] +[median[]]

Rencontres

 14 juin 2015 à 16h58

Rencontres locales d'enthousiastes de TiddlyWiki tout autour du monde :

  • OXTWIG, le groupe d'intérêt TiddlyWiki d'Oxford des rencontres mensuelles à Oxford, UK pour partager des expériences sur l'utilisation de TiddlyWiki

Si vous êtes un enthousiaste de TiddlyWiki veuillez réfléchir au lancement d'un TWIG local, c'est un excellent moyen de faire part au monde de l'utilisation de TiddlyWiki

MessageCatcherWidget

 22 décembre 2021 à 15h30

Introduction

Depuis : 5.2.0

The message catcher widget traps messages dispatched within its child content, and allows invoking a series of ActionWidgets in response to those messages.

Content and Attributes

The content of the <$messagecatcher> widget is displayed normally.

AttributeDescription
{any attributes starting with $}Each attribute name (excluding the $) specifies the name of a message, and the value specifies the action string to be invoked
typeName of the message be trapped, for example "tm-scroll" or "tm-navigate". The type and actions attributes can be useful when the type of event needs to be specified via a variable or text reference
actionsAction string to be invoked when a matching message is trapped. Must be used in conjunction with the type attribute

Variables

The message catcher widget sets the following variables within each action string:

VariablesDescription
event-*All string-based properties of the event object, with the names prefixed with event-
list-eventA list of the names of each the string-based properties of the event object (the names are not prefixed with event-)
event-paramObject-*All string-based properties of the event.paramObject object, with the names prefixed with event-paramObject-
list-event-paramObjectA list of the names of each the string-based properties of the event.paramObject object (the names are not prefixed with event-paramObject-)
modifierFor messages that originated with browser events, the modifier keys that were pressed when the event was fired. The possible modifiers are normal (no modifiers), ctrl, ctrl-alt, ctrl-shift, alt, alt-shift, shift and ctrl-alt-shift

Example


\define actions()
<$action-log/>
\end

<$messagecatcher $tm-navigate=<<actions>>>

Click on [[this link]] to fire an action. See the browser JavaScript console for the output

</$messagecatcher>

Affichera ceci :

Click on this link to fire an action. See the browser JavaScript console for the output

MessageHandlerWidgets

 13 novembre 2021 à 16h38

Message handler widgets are those widgets which can react to one or more widget messages.

Widget messages are similar to low-level DOM events, except they are higher-level and specific to TiddlyWiki. To handle DOM events see the EventCatcherWidget

The following message handler widgets are provided:

Messages

 22 juin 2015 à 12h26

Milk

 6 octobre 2020 à 19h12

This is a sample shopping list item for the Shopping List Example

min Operator

 11 juin 2019 à 14h11
purposetreating each input title as a number, take the minimum of its value and the numeric value of the operand
inputa selection of titles
parameterN = a number
outputthe input as numbers, with any that are greater than N being replaced by N

Learn more about how to use Filters

Depuis : 5.1.20 See Mathematics Operators for an overview.

See also the max Operator, and compare with the maxall Operator and the minall Operator.

Examples

min Operator (Examples)

 11 juin 2019 à 14h11

[[23]min[32]]

=1 =2 =3 =4 +[min[3]]

minall Operator

 11 juin 2019 à 17h10
purposefind the smallest of a list of numbers
inputa selection of titles
outputthe smallest of the input numbers

Learn more about how to use Filters

Depuis : 5.1.20 See Mathematics Operators for an overview.

See also the maxall Operator, and compare with the max Operator and the min Operator.

Examples

minall Operator (Examples)

 11 juin 2019 à 17h11

=1 =2 =3 =4 =5 +[minall[]]

[tag[HelloThere]get[text]length[]minall[]]

minlength Operator

 11 octobre 2016 à 8h42
purposefilter items shorter than the specified minimum length
inputa list of items
parameterminlength = the minimum length for items
outputthose items at least as long as the specified minimum length

Learn more about how to use Filters

Depuis : 5.1.14

minlength Operator (Examples)

 11 octobre 2016 à 8h42

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]minlength[7]]

[list[Days of the Week]minlength[1]]

Mobile Drag And Drop Shim Plugin

 28 mars 2017 à 18h43

The Mobile Drag And Drop Shim Plugin provides a "shim" that enables HTML 5 compatible drag and drop operations on mobile browsers, including iOS and Android. The shim was created by Tim Ruffles and is published at https://github.com/timruffles/ios-html5-drag-drop-shim.

Modals

 21 décembre 2021 à 10h26

Modals (or "wizards") fade the main TiddlyWiki window to display an isolated tiddler that must be explicitly dismissed by the user.

The tiddler to be displayed can contain the following optional fields that are used to customise the modal:

FieldDescription
footerThe footer text for the modal
subtitleThe subtitle text for a modal, displayed in a h3 html tag
classAn additional class to apply to the modal wrapper
helpAn optional external link that will be displayed at the left of the footer with the text "Help"
mask-closableWhen set to yes or true, will close the modal dialog when the mask (area outside the modal) is clicked

Note that the footer and subtitle fields are not limited to plain text, and wiki text features such as widgets and transclusions can be used as well.

Modals are displayed with the WidgetMessage: tm-modal.

Depuis : 5.2.4 allow using "mask-closable" field

modifier Variable

 14 avril 2022 à 17h28

Within the action string of the DroppableWidget, the startactions and endactions of the DraggableWidget, the action string of the ButtonWidget and the action string of the LinkCatcherWidget and the EventCatcherWidget, the modifier variable contains the modifier key(s) held during the drag, click or other event. Possible key combinations are listed in the table below.

The variable contains a string that identifies the keys:

Modifier KeyVariable Content
metameta
ctrlctrl
altalt
shiftshift
meta+shiftmeta-shift
meta+ctrlmeta-ctrl
meta+altmeta-alt
ctrl+shiftctrl-shift
alt+shiftalt-shift
ctrl+altctrl-alt
meta+ctrl+shiftmeta-ctrl-shift
meta+ctrl+altmeta-ctrl-alt
meta+alt+shiftmeta-alt-shift
ctrl+alt+shiftctrl-alt-shift
meta+ctrl+alt+shiftmeta-ctrl-alt-shift
no modifier (normal click / drag)normal

Some operating systems may intercept the meta key so it is never detected

Modifier keys held while clicking the button above:

Modifying JSON tiddlers

 27 avril 2022 à 18h17

See JSON in TiddlyWiki for an overview of using JSON in TiddlyWiki.

Note that

Using ActionSetFieldWidget and ActionListopsWidget

The widgets ActionSetFieldWidget and ActionListopsWidget can manipulate named properties of data tiddlers by indicating the name of the property in the $index attribute.

ActionListopsWidget assigns the named property the list constructed through its $filter and $subfilter attributes.

moduleproperty Operator

 19 septembre 2021 à 21h13
purposeretrieve a module property
inputa selection of modules
parametermodule property to retrieve
outputthe value of the module property as specified in the operand

Learn more about how to use Filters

moduleproperty Operator (Examples)

 19 septembre 2021 à 21h17

Get the name of the macro in the module $:/core/modules/macros/qualify.js:

[[$:/core/modules/macros/qualify.js]moduleproperty[name]]

For all macro modules retrieve their name module properties:

[[macro]modules[]moduleproperty[name]]

Modules

 22 juin 2015 à 11h53

Un module dans TiddlyWiki5 est un tiddler contenant du JavaScript exécutable, de type application/javascript et dont le champ module-type correspond au ModuleType du module.

Voir dans l'onglet Info du panneau de contrôle, l'option Avancé, puis cliquer sur $Modules chargés pour les listes des modules chargés.

modules Operator

 19 septembre 2021 à 21h11
purposeselect the names of all modules of the input module types
inputa selection of module types
parameternone
outputthe title of each module with any of the input types

Learn more about how to use Filters

Depuis : 5.2.0The modules filter allows two optional operands. When both are specified, it returns the modules with the module property specified in the first operand which has the value in the second operand.

Examples

modules Operator (Examples)

 19 septembre 2021 à 21h10

[[filteroperator]modules[]]

Get the title of the macro module which a property name with value version:

[[macro]modules[name],[version]]

ModuleType

 22 juin 2015 à 12h01

Le champ module-type d'un module JavaScript est une chaine identifiant le type de module. Ci-après la liste des types de module utilisés dans ce wiki :

allfilteroperator
Un sous-opérateur pour l'opérateur de filtre all.
animation
Animations pouvant être utilisées par le RevealWidget.
authenticator
Définit comment les requêtes sont authentifiées par le serveur HTTP intégré.
bitmapeditoroperation
Une opération intégrée à la barre d'outils de l'éditeur de bitmap.
command
Commandes qui peuvent être exécutées en mode Node.js.
config
Données à inclure dans $tw.config.
filteroperator
Méthodes d'opérateurs pour les filtres.
filterrunprefix
formatfilteroperator
global
Données globales à inclure dans $tw.
indexer
info
Publie des informations système via le pseudo-plugin $:/temp/info-plugin.
isfilteroperator
Opérandes pour l'opérateur de filtre is.
library
Module générique pour les modules JavaScript de portée générale.
macro
Définitions de macros JavaScript.
parser
Parseurs pour divers types de contenu.
route
Définit comment chaque motif d'URL est géré par le serveur HTTP intégré.
saver
Les tiddlers d'enregistrement contiennent les différentes méthodes pour enregistrer des fichiers à partir du navigateur.
startup
Fonctions de démarrage.
storyview
Différents points de vue sur le déroulé, qui personnalisent l'animation et le comportement des widgets de liste.
texteditoroperation
Une opération intégrée à la barre d'outils de l'éditeur de texte.
tiddlerdeserializer
Convertit différents types de contenu en tiddlers.
tiddlerfield
Définit le comportement d'un champ de tiddler.
tiddlermethod
Ajoute des méthodes au prototype $tw.Tiddler.
upgrader
Applique une procédure de mise à jour aux tiddlers lors de l'opération de mise à jour/importation.
utils
Ajoute des méthodes dans $tw.utils.
utils-node
Ajoute des méthodes spécifiques au mode Node.js dans $tw.utils.
widget
Les widgets encapsulent les méthodes de rendu et de rafraichissement du DOM.
widget-subclass
wikimethod
Ajoute des méthodes à $tw.Wiki.
wikirule
Règles d'analyse pour le parseur WikiText principal.

moduletypes Operator

 3 février 2015 à 18h59
purposeselect the names of all TiddlyWiki module types
inputignored
parameternone
outputthe name of each known TiddlyWiki module type, in alphabetical order

Learn more about how to use Filters

moduletypes Operator (Examples)

 23 janvier 2015 à 22h16

[moduletypes[]]

Monday

 16 novembre 2021 à 22h11

This example tiddler is used to illustrate some of the Filter Operators.

More actions

 17 août 2016 à 12h01

Pressing Gives you a dropdown menu with more editing options.

Motovun Jack.ascii

 

  ';.                                                           .;c'
 :XNo                                                          ,kjack'           .:dd
,K0X:                                                         '0l   Tiddly:',..,Wiki.
jacK'                                                        .dk.     '';jack  .xk;
Jack;                        ..',','...                      '0c                .0c
:0:c0l.                 .:dTidllyc::cjoWikioc:,,,,;;:cJACKc:;;d0.                'K:
 l0:'jack,...   ...',:lkxc.              ..';:ccc:;;,'...',:loc                 .Kc
  ,xk:..,jackjackjack;'.                                                        :K,
    .lxxl;..        .                                                          .Ox.
       .':lTiddlyWikI.                                                        .xk.
              ``   ;0;                                                 .     ;Od.
                   .dO'                                               .0Ojackx,
                     cOo'                                            .kk'.'..
                      .k0'                                         .cOo.
                      lO;          ...                          .jack.
                    .xk'          .jackTiddlyWikijackO,       .lkd;.
                   ;Oo.          .dO.              .ok.     ,Oo.
                  l0;    .c,     ,0:                .kd     l0.
                 .xk.   .xNx     lO.                 lO.    ;0,
                  .Od.  ,XW0,    :0;                 dk.    .kx.
                   .kx.  jACKx'   cOl.              .Ol      ;0:
                    .oO:  .JACKx.  .jack;'.         .0:       c0;
                      'dkc   ,lXKd'   .'jack.       .Ol        cOc.
                        .;ljack,.;xkc,...,oK,        'xxjack.   .oko.
                            ``       'cljack'              .okdlcJack.
                                                             'JacK,'

Motovun Jack.jpg

 

Motovun Jack.pdf

 

Motovun Jack.svg

 20 septembre 2014 à 21h59

move Operator

 8 novembre 2015 à 8h24
purposemove marker N places in the list
inputa list of items
suffixan integer N, defaulting to 1
parametermarker = the list item to be used as a marker
outputre-ordered list of items

Learn more about how to use Filters

move Operator (Examples)

 8 novembre 2015 à 5h16

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]] +[move[Wednesday]]

[list[Days of the Week]] +[move:-2[Wednesday]]

multiply Operator

 11 juin 2019 à 13h58
purposetreating each input title as a number, multiply it by the numeric value of the operand
inputa selection of titles
parameterN = a number
outputthe input as numbers, but with each one multiplied by N

Learn more about how to use Filters

Depuis : 5.1.20 See Mathematics Operators for an overview.

Compare with the product Operator.

Examples

multiply Operator (Examples)

 11 juin 2019 à 13h57

[[23]multiply[19]]

=1 =2 =3 =4 +[multiply[4]]

MultiTiddlerFiles

 21 juin 2015 à 19h21

MultiTiddlerFiles allow multiple tiddlers to be concisely represented in a single text file.

The goals of this format are:

  • To be easy to type and easy to read
  • Optimised for single line strings
  • To allow common fields or tags to be shared within groups of tiddlers
  • To be simple to process with external tools

MultiTiddlerFiles have the extension multids. The file is structured as a block of shared fields followed by a blank line. The rest of the file is a sequence of comments and tiddlers. Tiddlers are specified by their title, followed by a colon, at least one space character, and then the rest of the line is the text field for the tiddler.

For example:

title: $:/language/ControlPanel/
tags: strings
modifier: JoeBloggs

Basics/Caption: Basics
# This is a comment
Basics/Version: ~TiddlyWiki Version

This example defines two tiddlers, $:/language/ControlPanel/Basics/Caption and $:/language/ControlPanel/Basics/Version.

If a title field is specified in the header then it is treated as a prefix for the individual tiddlers defined in the title.

Syntax Specification

MultiTiddlerFiles

Header LineBlank LineTiddler Descriptor LineComment Line

Header Line

Identifier:WhitespaceValueNew Line

Tiddler Descriptor Line

File Path:WhitespaceTiddler TitleNew Line

Comment Line

#TextWhitespaceNew Line

MultiTiddlerFileSyntax

 21 juin 2015 à 19h14

MultiTiddlerFiles

Header LineBlank LineTiddler Descriptor LineComment Line

Header Line

Identifier:WhitespaceValueNew Line

Tiddler Descriptor Line

File Path:WhitespaceTiddler TitleNew Line

Comment Line

#TextWhitespaceNew Line

Named Filter Run Prefix

 18 novembre 2021 à 2h58

allandcascadeelseexceptfilterintersectionmaporreducesortthen

A named filter run prefix can precede any run of a filter expression in place of a single-character prefix (+, - and so on). To create a new filter run prefix, create a Javascript module with a module-type of filterrunprefix.

NamedCommandParameters

 17 novembre 2021 à 23h42

Depuis : 5.1.18 Most TiddlyWiki Commands use a position-based system for their parameters where each parameter must be listed in the precise order defined by the command. Some of the more complex commands offer an alternative scheme of named command parameters. For example, here we provide two parameters named "port" and "host":

--listen port=8090 host=0.0.0.0

Note that the order of the parameters does not matter.

Using special characters within a parameter requires quoting. Unix, Linux and the Mac use single quotes, and Windows uses double quotes:

--listen port=8090 username=joe 'password=s3cret(!'
--listen port=8090 username=joe "password=s3cret(!"

Note that the quotes are applied to the entire name=value pair, not just to the value part.

namespace Variable

 28 février 2015 à 13h37

The namespace variable is used internally by HTML widgets to keep track of the correct namespace for the DOM elements they generate.

An svg or math element supplies a distinct namespace for itself and any child elements it contains.

Naming of System Tiddlers

 12 septembre 2014 à 15h26

The system tiddlers provided as part of the core are named according to the following rules:

NamespaceFormatDescription
$:/*CamelCaseRoot user interface tiddlers (eg control panel, advanced search)
$:/config/*CamelCaseUser-oriented configuration setting
$:/core/images/*hyphen-caseCore images
$:/core/modules/*lowercaseJavaScript module tiddlers
$:/core/save/*lowercaseSaving templates for creating TiddlyWiki documents
$:/core/templates/*inconsistentTemplates needed for TiddlyWiki to operate. Currently uses a mix of dashes and periods to separate words
$:/core/ui/*inconsistentTiddlers comprising the default user interface of TiddlyWiki. Currently uses a mix of CamelCase and lowercase naming conventions
$:/core/wiki/*lowercaseMetadata about the entire wiki
$:/docs/*lowercaseDocumentation tiddlers
$:/messages/*CamelCaseSystem messages
$:/plugins/*lowercasePlugin tiddlers, and plugin content
$:/snippets/*inconsistentReusable snippets (will be replaced by macros)
$:/state/*lowercaseUser interface state tiddlers
$:/tags/*CamelCaseUser interface configuration tags
$:/temp/*lowercaseTemporary tiddlers that shouldn't be saved
$:/themes/*lowercaseTheme plugins

In the format column:

  • hyphen-case refers to joining multiple lowercase words with hyphens
  • CamelCase refers to directly joining multiple lowercase words with initial uppercase letters
  • lowercase refers to directly joining multiple lowercase words
  • inconsistent marks namespaces that are currently titled inconsistently

Navigation parmi les tiddlers ouverts

 22 octobre 2014 à 21h16

Dans le mode de déroulé par défaut « classic », les tiddlers ouverts sont affichés verticalement dans une colonne appelée « cours du déroulé ». Il existe plusieurs façons de parcourir le déroulé — autrement dit, de rebondir d'un tiddler ouvert à l'autre.

  • Une façon évidente consiste à faire défiler la page de bas en haut à l'aide de la barre de défilement du déroulé sur la droite.
    • On notera que lorsque le cours du déroulé et la barre latérale s'étendent l'un et l'autre sous l'écran visible, deux barre de défilement apparaissent. La barre de défilement extérieure, soit la plus à droite, contrôle le cours du déroulé. La barre de déroulement intérieure contrôle la barre latérale.
  • Une manière de procéder un peu maladroite mais souvent tentée par les nouveaux utilisateurs consiste à fermer les tiddlers un par un jusqu'à retrouver le tiddler qu'ils cherchent.
    • Fermer un tiddler quelconque en haut ou au milieu du déroulé fera que tous les tiddlers situés en dessous remonteront le cours du déroulé. Le tiddler situé juste en dessous de celui que vous venez de fermer remontera d'un cran pour prendre sa place.
    • Fermer le tiddler tout en bas du déroulé amènera le bas du tiddler situé juste au-dessus de lui dans le champ de vision.
  • La meilleure approche consiste à utiliser l'onglet Ouverts dans la barre latérale pour cliquer directement sur le tiddler ouvert vers lequel vous souhaitez vous déplacer.
    • L'onglet 'Ouverts' contient la liste de tous les tiddlers ouverts. Vous pouvez cliquer sur n'importe quel tiddler de la liste pour rebondir vers lui, ou cliquer sur le 'x' situé à côté pour le fermer. Il existe également un bouton 'Tout fermer' au bas de la liste des tiddlers ouverts.

NavigatorWidget

 27 novembre 2021 à 2h39

Introduction

The navigator widget manipulates the current store, the story list and history lists in response to various Messages.

Content and Attributes

The navigator widget displays any contained content, and responds to Messages dispatched within it.

AttributeDescription
storyName of the tiddler containing the story list to be manipulated
historyName of the tiddler containing the history list to be manipulated
openLinkFromInsideRiverDetermines the location for opening new tiddlers from links within the story river: at the top or bottom of the story river, or above or below the current tiddler
openLinkFromOutsideRiverDetermines the location for opening new tiddlers from links outside the story river: at the top or bottom of the story river
relinkOnRename Depuis : 5.1.14 Determines if tags in other tiddlers are renamed if the tiddler title changes. yes or no. default: no

Widget Messages

The following Messages are handled by the navigator widget:

Variables

The following Variables are assigned by the navigator widget:

  • tv-story-list, giving the name of the tiddler containing the story list
  • tv-history-list, giving the name of the tiddler containing the history list

Examples

See Creating SubStories.

negate Operator

 11 juin 2019 à 18h40
purposecalculate the negation of a list of numbers
inputa selection of titles
outputthe negation of the input numbers

Learn more about how to use Filters

Depuis : 5.1.20 See Mathematics Operators for an overview.

Examples

negate Operator (Examples)

 11 juin 2019 à 18h41

[[-2000]negate[]]

=1 =2 =3 =4 =5 +[negate[]]

New Release Banner

 

Newnham Horizon.jpg

 

next Operator

 3 février 2015 à 18h59
purposefind which titles in a list field follow the input ones
inputa selection of titles
parameterT = a tiddler title
outputa selection containing each title that immediately follows each of the input titles in the list field of T

Learn more about how to use Filters

Each input title is processed in turn, and its successor is located in the list field and appended to the output. If a title is not listed in the field, or is the last title there, then it contributes nothing to the output.

Examples

next Operator (Examples)

 23 janvier 2015 à 22h18

These examples make use of the Days of the Week tiddler.

[[Monday]next[Days of the Week]]

[[Sunday]next[Days of the Week]]

Tuesday Wednesday Thursday +[next[Days of the Week]]

node-webkit

 20 novembre 2021 à 22h17

"node-webkit" was the original name for the project now known as NW.js.

Node.js

 23 juin 2015 à 7h33

Node.js est une application téléchargeable sur votre ordinateur PC, Mac ou Linux, qui vous permet d'exécuter des programmes JavaScript. Contrairement aux programmes JavaScript s'exécutant dans un navigateur, le code tournant sur Node.js dispose d'un accès complet au système de fichiers et aux autres ressources de l'ordinateur, ce qui lui permet mener à bien des tâches traditionnellement dévolues à des langages comme Java, PHP et Python. Voir http://nodejs.org pour plus de détails.

Dans le cas de TiddlyWiki, Node.js permet de profiter d'un même code principal capable de tourner aussi bien dans le navigateur que sur le serveur, ce qui accroît encore sa souplesse d'utilisation.

Pour les utilisateurs finaux, le mode Node.js n'est pas plus compliqué à utiliser que le mode intégré au navigateur web, mais il donne accès à des fonctions puissantes, notamment la possibilité d'exécuter TiddlyWiki en tant que serveur web auquel vous pouvez vous connecter depuis d'autres appareils.

Voir TiddlyWiki sur Node.js pour plus de détails.

Notes for upgrading to 5.0.11-beta

 16 mai 2014 à 16h02

Version 5.0.11-beta includes some changes that can break content from earlier releases of TiddlyWiki 5.

Command line changes

Previously, commands that generate output files would interpret the specified path to the file as being relative to the current working directory. So, for example, the following command would write index.html to the current directory:

tiddlywiki mywiki --rendertiddler $:/core/save/all index.html text/plain

In 5.0.11-beta this behaviour has changed, and now the specified filename is resolved relative to an output folder within the TiddlyWikiFolder. So the command above will now write the file index.html to mywiki/output/index.html.

You can override this behaviour with the OutputCommand. For example, to generate the index.html file within the current directory:

tiddlywiki mywiki --output . --rendertiddler $:/core/save/all index.html text/plain

A further change is that the --rendertiddlers command now clears the output folder before it writes any files. This means that any previous --rendertiddler commands to the same folder will have their output deleted.

Notes for upgrading to 5.0.8-beta

 23 février 2014 à 19h55

Version 5.0.8-beta includes some changes that can break content from earlier releases of TiddlyWiki 5.

Change to $:/SiteTitle and $:/SiteSubtitle

You should rename any existing SiteTitle and SiteSubtitle tiddlers to $:/SiteTitle and $:/SiteSubtitle respectively.

Changed parsing rules for content of HTML elements

Version 5.0.8-beta marks a change in the way that TiddlyWiki determines whether to parse the content of an HTML element or widget in block mode or inline mode.

  • In block mode, TiddlyWiki parses text into paragraphs, creating <p> tags to wrap them. It also recognises block syntax like headings, lists and tables.
  • In inline mode, TiddlyWiki ignores paragraph formatting, and just recognises character formatting, like bold and italic.

It's important to be able to control which type of parsing is performed for different situations.

Prior to 5.0.8-beta, TiddlyWiki parsed the content of an element in inline mode unless the opening tag of the element were immediately followed by a line break. This meant that much of the time element tags would be shunted together into a long line, hindering readability.

The new behaviour for 5.0.8-beta is to parse the content of an element in inline mode unless the opening tag is immediately followed by two line breaks.

To adjust existing content for 5.0.8-beta you will need to manually add the additional line break after the opening tag of elements and widgets whose content should be parsed in block mode.

The positive aspect of the change is that it removes the need to pack multiple HTML tags onto a single line, improving readability.

Examples

Consider the difference between these two examples. First, here's an HTML tag that starts with two line breaks:


<blockquote>

! This is a heading

And a paragraph of text.

</blockquote>

Affichera ceci :

This is a heading

And a paragraph of text.

Code HTML correspondant :

<blockquote><h1 class="">This is a heading</h1><p>And a paragraph of text.</p></blockquote>

Secondly, here's an HTML tag with just a single line break. Notice how the heading is no longer recognised as a heading


<blockquote>
! This is a heading

And a paragraph of text.
</blockquote>

Affichera ceci :

! This is a heading And a paragraph of text.

Code HTML correspondant :

<p><blockquote>
! This is a heading

And a paragraph of text.
</blockquote>
</p>

Changed commands for TiddlyWiki on Node.js

The handling of wiki folders has changed. Previously, if the tiddlywiki command was run against a wiki folder that didn't have the necessary tiddlywiki.info file then it would be automatically created. Now, the wiki folder must be initialised with the InitCommand.

This is how to create and start a new server-based wiki:

tiddlywiki mywikifolder --init server
tiddlywiki mywikifolder --server

Note that the name of the clientserver edition has changed to server.

Notifications

 7 janvier 2016 à 22h58

Notifications are small informational messages that appear at the top right of the TiddlyWiki window, and automatically disappear after a preset time.

now Macro

 29 juin 2021 à 22h50

The now macro returns the current date and time in a specified format.

The value doesn't update automatically, like a ticking clock. It updates whenever the macro call is rendered, such as when the containing tiddler's display needs to be refreshed for some other reason.

Parameters

format
A string specifying the desired format, defaulting to 0hh:0mm, DDth MMM YYYY

Note: The format string [UTC]YYYY0MM0DD0hh0mm0ssXXX will return a date string representing the UTC time-stamp as it is used in the TiddlyWiki created and modified time-stamp fields.

Depuis : 5.2.0

You can now pass literal parameters to the now macro in filters. For example, this filter will return all tiddlers created today: [all[tiddlers]] :filter[get[created]format:date[YYYY0MM0DD]match<now YYYY0MM0DD>]

Exemples

now Macro (Examples)

 21 février 2015 à 17h04

<<now>>
<<now YYYY-0MM-0DD>>
<<now "hh:0mm:0sspm">>

NowMacro

 18 octobre 2014 à 17h38

La macro now renvoie la date et l'heure courantes, formatées d'après chaîne de caractères optionnelle.

Paramètres

PositionNomDescriptionDéfaut
1formatChaîne de type DateFormat spécifiant le format pour la date et l'heure0hh:0mm, DDth MMM YYYY

Exemples

Par exemple :

* <<now>>
* <<now "DDth MMM YYYY">>

Renvoie :

  • 22:19, 4 octobre 2023
  • 4 octobre 2023

nsort Operator

 3 février 2015 à 19h00
purposesort the input by number field
inputa selection of titles
parameterF = the name of a field, defaulting to title
outputthe input, sorted into ascending order by field F, treating field values as numbers
! outputthe input, likewise sorted into descending order

Learn more about how to use Filters

Non-numeric values are treated as having a higher value than any number, and the difference between capital and lowercase letters is ignored. Compare nsortcs.

Examples

nsort Operator (Examples)

 23 janvier 2015 à 22h21

10 010 1000 100 +[nsort[]]

10 010 ALPHA beta alpha 1000 100 +[nsort[]]

nsortcs Operator

 17 avril 2015 à 13h57
purposesort the input titles by number field, treating upper and lower case as different
inputa selection of titles
parameterF = the name of a field, defaulting to title
outputthe input, sorted into ascending order by field F, treating field values as numbers
! outputthe input, likewise sorted into descending order

Learn more about how to use Filters

Non-numeric values are treated as having a higher value than any number, and capital and lowercase letters are treated as different. Compare nsort.

Examples

nsortcs Operator (Examples)

 23 janvier 2015 à 22h21

10 010 1000 100 +[nsortcs[]]

10 010 ALPHA beta alpha 1000 100 +[nsortcs[]]

nth Operator

 29 octobre 2021 à 3h37
purposeselect the Nth input title
inputa selection of titles
parameterN = an integer, defaulting to 1
outputthe Nth input title

Learn more about how to use Filters

N is one-based. In other words, nth[1] has the same effect as the first operator.

See zth for an equivalent operator with a 0 based parameter

Examples

nth Operator (Examples)

 23 janvier 2015 à 22h29

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]nth[]]

[list[Days of the Week]nth[5]]

NW.js

 23 juin 2015 à 8h49

NW.js est une application OpenSource qui étend les fonctionnalités d'un navigateur web avec celles de Node.js. Il permet l'utilisation d'application web d'une façon similaire aux applications natives, avec tous les accès au système de fichier et autres commodités natives. Allez plus loin sur le site officiel ou avec ce blog d'introduction (eng).

Voir TiddlyWiki sur NW.js pour plus de détails à ce sujet.

Un sommaire pour Obadiah

 14 juin 2015 à 5h57

Une introduction à la bible d'Obadiah par Dave Gifford utilisant la macro sommaire et différents réglages personnalisés de TiddlyWiki : un bouton nouveau, ici, modifié ajout d'un viewtemplate personnalisé pour intégrer des notes ou des images dans tout tiddler, et un tiddler transcluant tout contenu, adapté pour faciliter l'impression (ce tiddler).

http://giffmex.org/experiments/obadiah.html

OfficialPlugins

 12 juin 2022 à 9h23

The official TiddlyWiki plugin library contains the plugins that are part of the main TiddlyWiki 5 GitHub repository. Install them from the plugin library. Plugins from the official plugin library are automatically updated as part of the upgrade process.

Note
An overview, how to handle plugins can be found at: Plugins

Open Collective

 4 décembre 2022 à 16h56

Open Collective is a platform for transparent fundraising and expenses for projects like TiddlyWiki. It is the official TiddlyWiki community fundraising space.

https://opencollective.com/tiddlywiki

You can make a fixed one-time donation, or setup a recurring contribution.

The main goals listed for donations are to cover basic costs for community infrastructure like the Discourse forum, and a new goal for supporting the TiddlyWiki Core.

Additionally, the community can make use of the platform for special projects - to pool funds to pay for development, design, or anything else. The File Upload Plugin is the first of these, and we want to welcome others to launch projects here.

Open Collective Logo

 

OpenSource

 23 juin 2015 à 7h32

L'Open Source est définie par Wikipedia comme une philosophie, ou comme méthodologie éprouvée qui promeut la diffusion gratuite et l'accès libre à la conception et au code détaillé d'un produit fini.

Ordre des tiddlers tagués

 24 juin 2015 à 10h27

Quand TiddlyWiki génère une liste de tiddlers portant un tag particulier (ex : la liste déroulante d'un tag pilule), it trie les tiddlers selon les règles suivantes :

  1. Commencer par tout tiddler declaré dans le champ list du tiddler, en suivant l'ordre donné.
  2. Pour chaque tiddler T restant, chercher un champ list-before. s'il a le titre du tiddler comme valeur, placer le tiddler T juste avant celle-ci.
    • Au cas particulier, où le champ existe mais que sa valeur soit vide, placer T au tout début de la liste.
  3. Pour chaque tiddler T restant, chercher un champ list-after field. S'il a le titre du tiddler title comme valeur, placer le tiddler T juste après ce dernier.
  4. Si des tiddlers restent encore, les placer en queue de liste dans l'ordre alphabétique croissant des titres. Les différences entre majuscule et minuscule sont ignorées.

order Operator

 28 novembre 2016 à 19h12
purposeselectively reverse the input list
inputa selection of titles
parameterF = Either the string reverse or another value
outputthe input, with the order reversed if F is the special value reverse

Learn more about how to use Filters

Either reverses or preserves the order of the input list according to whether the parameter is the special value reverse.

Examples

Origines de TiddlyWiki

 28 novembre 2014 à 15h12

En 1997, un collègue me montra le wiki original de Ward Cunningham. Que quelque chose d'aussi puissant puisse être écrit en seulement 700 lignes de Perl m'impressionna à l'époque, et j'étais aussi fasciné par la manière radicale dont la sécurité et le système de permissions avaient été repensés. Comme beaucoup d'autres développeurs, je me suis jeté sur tous les types de wiki qui me passaient sous la main, afin d'explorer leur utilisation en environnement de travail.

Le principal attrait du wiki pour moi était le sentiment qu'il pouvait remettre en question le paradigme qui prévalait jusqu'alors, à savoir les documents conçus pour être imprimés, et les emails.

Après avoir observé pendant quelques années la manière dont les gens utilisaient les wikis, j'ai remarqué que les utilisateurs avancés faisait grand usage de la possibilité d'ouvrir plusieurs pages de wiki à la fois dans les onglets de leur navigateur, pour se faciliter la comparaison et la révision des pages, la recopie de texte d'une page à l'autre, et pour se constituer une sorte de file de pages en attente d'être lues.

J'ai eu le sentiment que cette capacité à manipuler plusieurs pages en même temps était centrale dans la capacité à réorganiser un wiki, et on considère généralement qu'un wiki réorganisé avec amour a tendance à être plus utile. Pourtant, les interfaces utilisateur des wiki ont toujours été exclusivement conçues pour la présentation et la manipulation d'une seule page à la fois.

Toutes ces réflexions se sont synthétisées lorsque j'ai vu l'interface de Gmail en avril 2004, qui utilisait Ajax de manière ingénieuse pour assembler des mails individuels dans des fils de conversations.

J'ai commencer à expérimenter avec HTML et JavaScript pour pousser l'idée. Je n'avais eu jusqu'à présent pratiquement aucune expérience de l'un ou de l'autre, à part composer quelques pages statiques et des sites ASP simples dans des vies précédentes. Se plonger dans ces techniques orientées client a été une expérience douloureuse ; comme tout le monde, j'étais horrifié de découvrir l'atrocité des incompatibilités et incohériences de la programmation web.

Osmosoft

 1 novembre 2013 à 9h24

Founded in 2004 by JeremyRuston, Osmosoft was originally a consultancy for software services around TiddlyWiki. Notable engagements included working with Socialtext on Socialtext Unplugged.

In 2007, Osmosoft was acquired by BT and became the champions for open source within the enterprise. As part of BT, Osmosoft has worked on a diverse range of projects within BT and for BT's customers.

See http://osmosoft.com/

Osmosoft et TiddlySpace

 24 juin 2015 à 10h25

Je constituais une équipe chez BT sous le nom Osmosoft. Nous avions comme objectif d'évangéliser les bénéfices de l'open source et d'aider d'autres équipes à réaliser ces bénéfices en pratique. Nous nous sommes aussi rendu compte qu'il était nécessaire d'évangéliser l'usage du Web en général, et les standards web en particullier.

Notre approche était de privilégier la démonstration sur le discours. Nous avons travaillé avec la communauté TiddlyWiki pour étendre l'écosystème, et nous avons construit de nombreux systèmes internes pour BT (certains basés sur TiddlyWiki, d'autres non).

La principale contribution d'Osmosoft à la communauté TiddlyWiki fut la création de TiddlyWeb et TiddlySpace. TiddlyWeb était un serveur robuste, capable de servir des tiddlers sur l'Internet, mais aussi de composer des vues TiddlyWiki à partir de ces tiddlers. Quant à TiddlySpace, il s'agissait d'une tentative pour packager TiddlyWeb de façon plus directement utilisable.

Other Resources

 1 janvier 2021 à 15h25

This list contains any usefull resource that have been shared with the TiddlyWiki Community that doesn fit the previous categories. They may be, macros, widgets, code snippts, ideas or more.

OutputCommand

 25 avril 2014 à 9h57

Change le répertoire de départ pour la sortie des prochaines commandes. Par défaut, le répertoire de sortie est le sous-répertoire output du répertoire de l'édition courante.

--output <nom de chemin>

Si le chemin spécifié est relatif, il est calculé relativement au répertoire de sortie courant. Par exemple, --output . indique le répertoire courant comme répertoire de sortie.

OXTWIG

 12 septembre 2014 à 16h03

The Oxford TiddlyWiki Interest Group meets monthly for discussions and demonstrations about TiddlyWiki.

See https://oxtwig.eventbrite.co.uk/ for details of our next meeting.

We have an email discussion list, too: https://groups.google.com/forum/#!members/oxtwig

OXTWIG #2

The second OXTWIG meeting was held on Thursday 16th January 2014:

OXTWIG #1

The first OXTWIG meeting was held on Thursday 21st November 2013:

pad Operator

 29 novembre 2020 à 17h53
purposereturns each item in the list padded to the specified length
inputa selection of titles
suffix(optional). Whether to pad by adding a "suffix" or "prefix". Defaults to "prefix".
parameterthe pad operator accepts 1 or more parameters, see below for details
outputthe input titles padded to the specified length

Learn more about how to use Filters

Depuis : 5.1.23

The pad operator requires at least one parameter which specifies the desired length of the input titles. A second optional parameter can be used to specify the string to pad with (defaults to "0").

[pad[<length>],[<padding-string>]]
  • length : the desired final length of the input titles.
  • padding-string: (optional). The string to use to pad to the desired length. Defaults to "0".

Examples

pad Operator (Examples)

 29 novembre 2020 à 18h00

[[2]pad[3]]

[[2]pad[3],[a]]

[[12]pad[9],[abc]]

[[12]pad:suffix[9],[abc]]

Personnalisation poussée de la page et des tiddlers

 20 juin 2015 à 9h11

Une caractéristique majeure dont plusieurs nouveaux utilisateurs ignorent le degré, est le point jusqu'auquel TiddlyWiki peut être personnalisé, juste par l'ajout, la suppression de tags système au sein de tiddlers shadow bien choisis ou dans vos propres tiddlers personnalisés.

  • Vous pouvez ajouter et retrancher les fonctionnalités par défaut des tiddlers aussi bien en mode édition que visualisation (au cas où vous trouveriez un sous titre de tiddler distrayant ou que vous souhaitiez avoir un aide-mémoire à visualiser lors de l'édition de tiddler)
  • Vous pouvez ajouter et retrancher les fonctionnalités par défaut de la mise en page globale (peut-être souhaitez-vous ajouter une horloge au menu latéral, ou remplacer les boutons de contrôle de la page par les vôtres
  • Vous pouvez aussi revoir l'ordre dans lequel les fonctionnalités sont affichées (comme mettre les tags au dessus des titres des tiddlers, ou le sous-titre de votre TiddlyWiki sous les boutons de contrôles de la page)

Une fois que vous saurez ce que vous faites, tout cela sera vraiment plutôt facile à réaliser.

Ajout de tiddlers sur-mesure dans l'interface utilisateur

Vous pouvez aussi créer tout tiddler de votre choix avec le TagSystème approprié, il apparaitra en son lieu et place. Par exemple, si vous créez un tiddler 'Rappel automatique', ajouter le texte 'C'est un aide-mémoire' et étiquetez le $:/tags/EditTemplate, la phrase 'C'est un aide-mémoire' apparaitra dans chaque tiddler lors de son édition.

Quand vous afficherez de nouveaux tiddlers dans des tiddlers ou dans la mise en page générale, vous aurez probablement à les repositionner de sorte qu'ils apparaissent exactement où vous le souhaitez. Pour ce faire, modifiez le bon tiddler shadow muni du préfixe $:/tags/, et insérez-y le titre de votre tiddler dans le champ list, au bon endroit. Par exemple, si la phrase 'C'est un aide-mémoire', de l'exemple au-dessus, doit s'afficher au-dessus de l'éditeur de tags dans le mode édition, modifiez le tiddler $:/tags/EditTemplate, sélectionnez le champ 'list' field, et insérez [[Rappel automatique]] juste avant $:/core/ui/EditTemplate/tags.

Création de nouveaux boutons pour le MenuOutilVisu et les contrôles de page

Imaginons que vous ayez un tiddler squelette appelé 'Modèle Recette', et que vous souhaitiez un bouton dans le tiddler MenuOutilVisu pour créer des tiddlers 'nouvelle recette' à la demande. Cela nécessite les étapes suivantes :

  1. Pour illustrer votre bouton, si aucune des images du noyau (tiddlers shadow préfixés par $:/core/images/ ) n'est à votre convenance, vous devrez la créer ou en obtenir une au format SVG (par exemple, une de celles de http://flaticon.com), glissez-la dans votre fichier pour la transformer en tiddler, modifiez le tiddler et ajustez sa hauteur et sa largeur à 22px
  2. Passons au tiddler contenant votre tiddler. Créez-le, titrez-le et ajoutez le code du bouton (voir le code ci-dessous par exemple, en l'adaptant à vos besoins si nécessaire) Étiquetez-le par $:/tags/ViewToolbar
  3. Contrôlons la visibilité de votre tiddler dans la barre d'outil par la création d'un tiddler à titrer $:/config/ViewToolbarButtons/Visibility/Recette. Saisissez showdans la zone texte et sauvegardez.
  4. Enfin, positionnons le bouton proprement. Ouvrez le tiddler $:/tags/ViewToolbar et insérez le titre de votre tiddler bouton (cf. titre étape précédente) dans le champ field au bon endroit.
\define newHereButtonTags()
[[$(currentTiddler)$]]
\end
\define newHereButton()
<$button class=<<tv-config-toolbar-class>>>
<$action-sendmessage
  $message="tm-new-tiddler"
$param="TITLE DE VOTRE BOUTON SQUELETTE"
title="New tiddler"
  tags=<<newHereButtonTags>> />
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
{{TITRE DE VOTRE TIDDLER IMAGE SVG}}
</$list>
<$list filter="[<tv-config-toolbar-text>match[yes]]">
<span class="tc-btn-text"><$text text="CAPTION DE VOTRE BOUTON"/></span>
</$list>
</$button>
\end

<<newHereButton>>

Supprimer les tiddlers shadows de l'interface utilisateur

Dans l'onglet 'Plus' > option 'Shadows' sont listés tous les tiddlers shadows. Dans cette liste se trouvent plusieurs tiddlers préfixés $:/core/ui/. Ce sont les tiddlers du noyau définissant l'interface utilisateur. Ces tiddlers sont étiquetés par des Tags système, supprimer ou ajouter ces tags modifie la présentation de la page et des tiddlers.

Par exemple, $:/core/ui/SideBar/More est le tiddler correspondant à l'onglet 'plus' du menu latéral, étiqueté par le Tag système $:/tags/SideBar de façon à apparaître dans le menu latéral. Supprimer ce tag de ce tiddler supprime le tag du menu, et lui réajouter ce tag le fera y réapparaître.

Vous pouvez suivre le même procédé pour tout tiddler du noyau définissant l'interface utilisateur et donc préfixé par $:/core/ui/. Ainsi encore, supprimer le Tag Système $:/tags/ViewTemplate du tiddler $:/core/ui/ViewTemplate/subtitle fera disparaître les sous-titres de tous les tiddlers.

Modifier un tiddler shadow de cette façon remplacera la valeur par défaut. Pour réinitialiser, il suffit de supprimer le tiddler modifié pour restaurer le tiddler shadow sous-jacent.

Paragraphes en WikiTexte

 22 avril 2022 à 2h11

Pour marquer la fin d'un paragraphe, il faut appuyer deux fois sur la touche Entrée pour créer deux retours à la ligne :

Ceci est un premier paragraphe.

Et ceci est un deuxième paragraphe.

Affichera ceci :

Ceci est un premier paragraphe.

Et ceci est un deuxième paragraphe.

Remarque
  • Peu importe le nombre de retours à la lignes supplémentaires, l'espacement entre les paragraphes reste le même.

Au sein d'un paragraphe, un retour à la ligne seul est ignoré :

Ceci est un
paragraphe constitué
de plusieurs
lignes courtes.

Affichera ceci :

Ceci est un paragraphe constitué de plusieurs lignes courtes.

Pour les situations où ce comportement n'est pas pratique, voir aussi : Fins de lignes forcées en WikiTexte.

ParametersWidget

 18 mai 2023 à 14h40

Depuis : 5.3.0 The $parameters widget is used within transcluded content to declare the parameters to be made available to the $transclude widget.

There are shortcuts for common scenarios that can often make it unnecessary to use the $parameters widget directly:

The $parameters widget must be used directly in the following situations:

  • When the default value of a parameter must be computed dynamically
  • When the $depth attribute is used to retrieve parameters from a parent transclusion (see below)

Content and Attributes

The content of the $parameters widget is the scope within which the values of the parameters can be accessed as ordinary variables.

AttributeDescription
$depthThe index of the parent transclusion from which to obtain the parameters (defaults to 1). See below
$parseModeOptional name of a variable in which is made available the parse mode of the content of the parent transclusion (the parse mode can be "inline" or "block")
$parseTreeNodesOptional name of a variable in which is made available the JSON representation of the parse tree nodes contained within the parent transclusion
$slotFillParseTreeNodesOptional name of a variable in which is made available the JSON representation of the parse tree nodes corresponding to each fill widget contained within the parent transclusion (as an object where the keys are the slot names and the values are the parse tree nodes)
$paramsOptional name of a variable in which is made available the JSON representation of the parameters passed to the parent transclusion (as an object where the keys are the parameter names and the values are the coresponding values)
{attributes not starting with $}Any attributes that do not start with a dollar are used as parameters, with the value specifying the default to be used for missing parameters
{other attributes starting with $}Other attributes starting with a single dollar sign are reserved for future use
{attributes starting with $$}Attributes starting with two dollar signs are used as parameters to the transclusion, but with the name changed to use a single dollar sign. The value specifies the default to be used for missing parameters
Note
Note the special treatment required for parameters names that start with a $; this can be avoided by using one of the pragmas

$depth Attribute

By default, the $parameters widget retrieves parameters from the immediate parent transclusion. The $depth attribute permits access to the parameters of parent transclusions by specifying an index to the parent to be inspected ("1" is the immediate parent, "2" is the parent of that parent, etc.). This is useful in some situations where an intervening transclusion prevents immediate access to desired parameters.

$parseMode, $parseTreeNodes, $slotFillParseTreeNodes and $params Attributes

These attributes provide low level access to the contents of the transcluding widget:

  • The $params attribute provides access to the raw parameters provided to the transcluding widget. Represented in JSON as an object with keys of the parameter names and values of the corresponding parameter values
  • The $parseMode attribute contains block or inline to indicate whether the contents was parsed in block or inline mode
  • The $parseTreeNodes attribute provides access to the raw parse tree nodes that represent the contents of the transcluding widget. Represented in JSON as an array of parse tree nodes
  • The $slotFillParseTreeNodes attribute provides access to the raw parse tree nodes corresponding to the filled slots within the contents of the transcluding widget. Represented in JSON as an object with keys of the slot name and values being an array of parse tree nodes

Examples

Example i: Shows transclusion of Sample Tiddler Template. The template tiddler has two parameters name and age and here their default values are used.

<$transclude $tiddler="Sample Tiddler Template" />

Example ii: Shows, another transclusion of Sample Tiddler Template, here the value of age is passed, but name uses its default value.

<$transclude $tiddler="Sample Tiddler Template" age=33/>

Example iii: Shows, another transclusion of Sample Tiddler Template, here the value of both name and age are passed.

<$transclude $tiddler="Sample Tiddler Template" age=45 name="Jeremy Ruston" />

In the simple form the above transclusion is equivalent to

{{Sample Tiddler Template|Jeremy Ruston|45}}

In this simple form, parameters passed by position not by name. So the first value is passed to the first parameter, here name and the second value is passed to the second parameter, here age.

Remarks

  1. Passing parameter by name is good practice and is recommended for clarity. So for parameterized transclusions, the use of $transclude is recommended over simple form transclusion.
  2. When passing parameters value by position, you cannot pass the second parameter while the first one has not been passed.

Example iv: Here the $parameters widget is used to declare a parameter whose default value is transcluded from another tiddler.

\procedure myproc()
<$parameters name={{$:/SiteTitle}} age="21">
My name is <<name>> and my age is <<age>>.
</$parameters>
\end

<$transclude $variable="myproc" age="19"/>

ParametersWidget (Examples)

 18 mai 2023 à 14h51

Example i: Shows transclusion of Sample Tiddler Template. The template tiddler has two parameters name and age and here their default values are used.

<$transclude $tiddler="Sample Tiddler Template" />

Example ii: Shows, another transclusion of Sample Tiddler Template, here the value of age is passed, but name uses its default value.

<$transclude $tiddler="Sample Tiddler Template" age=33/>

Example iii: Shows, another transclusion of Sample Tiddler Template, here the value of both name and age are passed.

<$transclude $tiddler="Sample Tiddler Template" age=45 name="Jeremy Ruston" />

In the simple form the above transclusion is equivalent to

{{Sample Tiddler Template|Jeremy Ruston|45}}

In this simple form, parameters passed by position not by name. So the first value is passed to the first parameter, here name and the second value is passed to the second parameter, here age.

Remarks

  1. Passing parameter by name is good practice and is recommended for clarity. So for parameterized transclusions, the use of $transclude is recommended over simple form transclusion.
  2. When passing parameters value by position, you cannot pass the second parameter while the first one has not been passed.

Example iv: Here the $parameters widget is used to declare a parameter whose default value is transcluded from another tiddler.

\procedure myproc()
<$parameters name={{$:/SiteTitle}} age="21">
My name is <<name>> and my age is <<age>>.
</$parameters>
\end

<$transclude $variable="myproc" age="19"/>

PasswordCommand

 

Fournit un mot de passe pour les prochaines opérations de chiffrement.

--password <motdepasse>

Note : Cette commande n'est pas appropriée pour servir un TiddlyWiki protégé par mot de passe. Pour cela, utilisez plutôt l'option password de la commande Server.

PasswordWidget

 30 octobre 2013 à 8h37

Introduction

The password widget displays a password input box that is bound to a named entry in the TiddlyWiki5 PasswordVault. Passwords are currently stored in the browsers local storage and are not themselves encrypted.

Content and Attributes

The content of the <$password> widget is ignored.

AttributeDescription
nameName of the password vault entry

Encodage PourCent (%)

 24 juin 2015 à 9h57

L'encodage PourCent est une notation qui permet d'inclure des caractères invalides dans une URI.

Ce type de caractère est représenté par le signe % suivi de deux caractères additionnels.

Par exemple, l'espace est représenté par %20 et le signe pourcent est représenté ainsi %25.

Performance

 14 octobre 2019 à 10h19

TiddlyWiki ships with defaults that are designed to get the best out of modern devices from smartphones to desktop computers. If you need to work on older, less powerful devices, or work with large amounts of content, there are a few steps you can take to improve performance.

Usage

  • Avoid the "Recent" tab. It is computationally slow to generate and update in response to tiddler changes.
  • Use the "Vanilla" theme. The default "Snow White" theme includes visual effects like shadows, transparency and blurring that can be slow to render on older devices
  • Avoid large tiddlers. Large bitmaps can significantly slow TiddlyWiki's performance. For example, an image taken with a modern smartphone will often be 5MB or more. Use ExternalImages whenever possible
  • Don't have too many tiddlers open at once. Every tiddler you have open will require processing to keep it up to date as the store changes (for example, while you type into a draft tiddler). It is particularly easy when using zoomin story view to end up with dozens of tiddlers listed in the Open tab in the sidebar. Get into the habit of periodically closing all open tiddlers with the close all button

WikiText

  • Use the built-in performance instrumentation. Studying the performance instrumentation results can help highlight performance problems
  • Take advantage of indexed filter operators. The following constructions at the start of a filter run will be optimised to run many times faster than otherwise:
    • [all[tiddlers]tag[x]...
    • [all[shadows]tag[x]...
    • [all[tiddlers+shadows]tag[x]...
    • [all[shadows+tiddlers]tag[x]...
    • [all[tiddlers]field:y[x]...
    • [all[shadows]field:y[x]...
    • [all[tiddlers+shadows]field:y[x]...
    • [all[shadows+tiddlers]field:y[x]...
    • Note that the field indexer currently defaults to indexing field values of less than 128 characters; longer values can still be searched for, but no index will be constructed
    • Also note that the “field” operator is also used when the operator name is a fieldname, so, for example, [all[shadows+tiddlers]caption[x]... is optimised.
  • Use the throttling feature of the RefreshMechanism judiciously
  • Keep in mind that transcluding separate tiddlers is more performant than heavy use of macros and the difference can be significant in some situations. The result of parsing each tiddler is cached and reused the next time if the tiddler has not changed. The same technique cannot be used for macros and they have to be re-parsed every time, as they are not global but local to the widget tree.
    • Depuis : 5.1.23 Parse trees are now cached for macros that do not perform any text substitution either via parameters or variables (i.e. $parameter$ or $(variable)$).
  • Where possible use the SetWidget or VarsWidget with filters instead of the WikifyWidget for declaring variables and string concatenation. The performance of the wikify mechanism is relatively poor as there is no opportunity to cache the parse tree or widget tree.

Performance Instrumentation

 10 mai 2019 à 14h34

The core has built-in performance instrumentation for the refresh cycle. See “Performance Instrumentation” on the “Settings” tab of control panel. The wiki will need to be reloaded before it takes effect.

With performance instrumentation switched on, there is additional timing information displayed the browser developer console each time a refresh cycle is triggered. For example:

performance: mainRender: 327.83ms 
performance: styleRefresh: 9.14ms 
performance: mainRefresh: 68.10ms 

The information above should be interpreted as follows:

  • mainRender is the time taken for the initial display of the page template
  • styleRefresh is the time taken to refresh the page stylesheet
  • mainRefresh is the time taken to refresh the main page template

As an example, try switching between the sidebar tabs to compare how long they take to render.

More detailed information on filter execution timings is also available. With performance instrumentation enabled, type the following JavaScript command in the browser developer console:

$tw.perf.log()

A table is displayed with the following information:

  • name - the string "Filter: " plus the text of the filter
  • invocations - the number of invocations of the filter since startup
  • totalTime - the total time in milliseconds spent evaluating this filter since startup
  • percentTime - the percentage of the execution time of this filter against the total execution time of all filters

PerlinLight.jpg

 

Permaliens

 23 février 2022 à 14h42

Les permaliens sont des liens directs vers des tiddlers individuels à l'intérieur d'un TiddlyWiki.

La forme simple des permaliens

La forme la plus simple d'un permalien () vers un tiddler cible unique est son nom précédé de "#" accolé au lien URL de base  :

https://tiddlywiki.com/#HelloThere

Le titre du tiddler peut contenir des espaces si nécessaire :

https://tiddlywiki.com/#Using TiddlyWiki on Node.js

Remarquez que les doubles crochets ne sont pas requis autour du titre du tiddler cible ; cependant, s'ils sont présents ils seront supprimés automatiquement.

(NDT : Attention en cas de traduction, le lien doit pointer vers le titre original title et pas vers le titre traduit affiché qui ne reflète que le contenu du champ fr-title)

Permaliens vers un déroulé

Le permalien peut aussi spécifier la liste de tiddlers qui seront ouverts dans le déroulé en plus du tiddler cible, à l'aide d'un filtre :

https://tiddlywiki.com/#TiddlerFields:Tiddlers TiddlerTags TiddlerFields ContentType

Si le tiddler cible est absent de la liste, il est alors automatiquement inséré au début du déroulé. Ce qui veut dire que les exemples suivants désignent tous les deux le tiddler Tiddlers dans le déroulé Tiddlers, Tags, TiddlerFields :

https://tiddlywiki.com/#Tiddlers:Tags TiddlerFields

https://tiddlywiki.com/#Tiddlers:Tiddlers Tags TiddlerFields

Il est aussi possible de spécifier un filtre sans spécifier de tiddler cible de navigation :

https://tiddlywiki.com/#:[tags[task]]

Concernant le codage URL

Il existe des restrictions techniques aux caractères autorisés dans un adressage URL. Afin de permettre à tous les titres de tiddler d'être adressés, les caractères illégaux font l'objet d'un processus appelé « codage URL » où les caractères problématiques sont remplacés par leurs codes numériques. Par exemple, le caractère espace est remplacé par %20.

Aussi bien le tiddler cible que le déroulé filtre devraient être encodés (mais pas le séparateur « : »). TiddlyWiki génère des URLs encodées correctement qui peuvent paraître un peu "moche". Cependant, dans la pratique les navigateurs parviennent heureusement à interpréter parfaitement des caractères arbitraires dans les extraits URL. De ce fait, quand vous créez des permaliens manuellement vous pouvez choisir d'ignorer le codage URL.

Comportement de TiddlyWiki avec les Permaliens

Deux aspects importants du comportement de TiddlyWiki avec les permaliens peuvent être réglés avec les options de l'onglet Réglages avancés du $:/ControlPanel  :

  • d'une part la mise à jour automatique de la zone d'adresse à chaque navigation, et dans ce cas s'il faut inclure la séquence du déroulé aussi bien que le tiddler cible
  • d'autre part si les mises à jour de la zone d'adresse doivent affecter l'historique du navigateur. Par défaut, c'est non ; mais lorsque oui est sélectionné, vous pouvez reprendre votre navigation entre les tiddlers en utilisant les boutons avancer et reculer du navigateur

Notez que saisir un permalien ou s'y rendre causera toujours le traitement du permalien, ainsi que l'ouverture et la fermeture des tiddlers appropriés en fonction de son contenu.

Détails techniques

Quand TiddlyWiki se lance il traite les permaliens selon les étapes ci-dessous ; ces même étapes sont répétées dynamiquement lors des modifications du permalien (ce qui survient en réaction à l'édition de la barre d'adresse par l'utilisateur, par exemple).

  1. Si le permalien contient un « : », traiter la chaine précédente comme la cible et la chaine qui suit comme le filtre du déroulé
  2. Si « : » est absent, traiter toute la chaine comme la cible et marquer le filtre du déroulé comme non-spécifié
  3. Si le filtre du déroulé est non-spécifié pendant le processus de lancement, alors mettre une chaine vide dans le filtre du déroulé si la cible est spécifiée, ou les tiddlers par défaut si la cible n'est pas spécifiée
  4. Si le filtre du déroulé est non-spécifié hors du processus de lancement, alors affecter le filtre du déroulé au déroulé actuel
  5. Évaluer le filtre du déroulé comme liste du déroulé
  6. Si la cible est spécifiée et absente de la liste du déroulé alors l'ajouter au début
  7. Si la cible est spécifiée alors s'y rendre, autrement naviguer au premier tiddler de la liste du déroulé

PESpot Un planificateur de cours par Patrick Detzner

 14 juin 2015 à 10h51

Un développement pour planifier les cours créés avec TiddlyWiki.

http://pespot.tiddlyspot.com

J'ai développé un logiciel pour assister dans la saisie et la mémorisation des information de planification des cours et ainsi faciliter/automatiser un ennuyeux travail lors de à la création du document actuel de planification des leçons.

Philosophie des tiddlers

 20 février 2022 à h43

Lorsqu'on enregistre et organise des informations, on se donne pour objectif de pouvoir les réutiliser plus tard. La valeur d'une information conservée est directement proportionnelle à la facilité avec laquelle on peut la réutiliser.

La philosophie des tiddlers consiste à maximiser les possibilités de réutilisation en découpant l'information en unités sémantiques aussi petites que possible, grâce à une modélisation riche des relations entre elles. On utilise ensuite l'agrégation et la composition pour tisser les fragments entre eux afin de construire des déroulés cohérents.

TiddlyWiki a pour ambition de proposer une algèbre pour les tiddlers : une manière concise d'exprimer et d'explorer les relations entre les diverses bribes d'information.

Pinstripe.gif

 

Endroits où le WikiTexte est ignoré

 21 avril 2022 à 21h01

Le texte contenu dans les constructions suivantes est survolé par l'interpréteur sans analyse du WikiTexte :

Blocs de code en WikiTexteL'une des fonctions principales des blocs de code est de supprimer l'analyse du WikiTexte. Dès que le bloc de code commence l'interpréteur arrête l'analyse du WikiTexte jusqu'à la fin du bloc.
Images en WikiTexte[[img|texte littéral de lien image]] - le texte inclus entre crochets est ignoré, ce qui signifie par exemple que ni les transclusions ni les appels de macros ne peuvent être utilisés pour construire le lien dynamiquement.
Liens en WikiTexte[[cible littérale du lien|intitulé littéral du lien]] - le texte inclus entre crochets est ignoré, ce qui signifie par exemple que ni les transclusions ni les appels de macros ne peuvent être utilisés pour construire la cible ou l'intitulé du lien dynamiquement.
Appel de macro en WikiTexte<<maMacro ''pas-en-gras'' "texte littéral" "<<expansion-de-macro-ignorée>>" {{transclusion-ignorée}}>> - pour traiter le texte inclus dans un appel de macro, l'interpréteur suit des règles particulières de détection des arguments de macros. Ces règles ne permettent pas d'analyser le WikiTexte, mais après la substitution des arguments dans la définition de la macro, le résultat est analysé à l'aide des règles normales. Le WikiTexte sera donc interprété ultérieurement dans le résultat.

Plates-formes

 24 juin 2015 à 10h16

TiddlyWiki peut être utilisé sur plusieurs plates-formes :

Plugin Dependencies

 28 septembre 2019 à 9h27

The simplest form of dependency between plugins is that one plugin can declare itself to be a sub-plugin of another plugin by specifying that plugin in the parent-plugin field. Sub-plugins are displayed in the control panel plugin chooser within the expandable area of their parent plugin. For example, the official plugin library includes the CodeMirror Plugin and also more than a dozen sub-plugins that extend the CodeMirror plugin with optional functionality. Note that sub-plugins cannot themselves have further sub-plugins.

Plugins can also use their dependents field to list the titles of any other plugins that should also be installed. Note that the list is not resolved recursively: dependents of dependents will not be installed.

When installing a plugin from the plugin library, both the parent-plugin and dependents fields are used to determine any additional plugins to be installed.

Note that the dependents field is also used by the ThemeMechanism and the LanguageMechanism to switch in dependent theme/language plugins.

Plugin Editions

 7 janvier 2016 à 22h37

These editions contain simple demos of the original set of TiddlyWiki plugins. They were prepared for earlier versions of TiddlyWiki that lacked the plugin library.

Plugin Fields

 28 septembre 2019 à 9h30

Plugins are stored as tiddlers with the following fields:

FieldDescription
author(optional) Author of plugin
dependentsList of dependencies: plugins that should be installed in order for this one to work
descriptionDescription of plugin
listNames of exposed plugin information tiddlers (see below)
nameBrief name of the plugin
plugin-priority(optional) Numerical priority (higher numbers install later, the core plugin has a priority of zero
plugin-typeGenerally plugin, language or theme; see PluginMechanism for details
parent-plugin(optional) Depuis : 5.1.22 Title of the plugin under which this plugin should be displayed as a sub-plugin in the control panel plugin chooser
source(optional) Source URL of plugin
textJSON encoding of the list of tiddlers comprising the plugin
titleTitle of plugin
typeMust be application/json
version(optional) Version string (should conform to SemanticVersioning convention)

Plugin Information Tiddlers

 15 octobre 2016 à 13h17

Information Tiddlers for Plugins

Plugin authors are encouraged to provide special information and documentation tiddlers that TiddlyWiki can include as plugin information tabs in the control panel.

Plugins should provide an icon contained in a tiddler with the title formed of <plugin-name>/icon (for example, $:/core/icon).

Plugins expose the names of the individual information tabs that they wish to display in the list field of the plugin tiddler. By convention, some or all of the following should be provided:

  • readme: basic information about the plugin
  • license: the license under which the plugin is published

The title of the associated information tiddler must be formed as follows:

  1. $:/<plugin-name>/<current-language>/<tab-name> (for example, $:/core/en-GB/readme)
  2. $:/<plugin-name>/<tab-name> (for example, $:/core/readme)

Thus, plugins can provide language-specific versions of each information tiddler.

Note that information tiddlers should not reference other tiddlers within the plugin. This is because plugins containing themes or languages are dynamically switched in and out as they are selected, and so their information tiddlers may not be available for viewing. The control panel uses the 'subtiddler' attribute of the TranscludeWidget to access these tiddlers, which works independently of the plugin switching mechanism.

Plugin Ordering

 28 juin 2022 à 17h01

Using the Node.js client-server configuration plugins are activated in the following order:

  1. Plugins found using the OS environment variables
  2. Plugins stored in the wiki /plugins path
  3. Plugins specified in the command line
  4. Plugins imported by drag and drop as wiki content

Important:

  • Elements lower in the list take precedence
  • Including a plugin as an ordinary tiddler by drag and drop into the browser, will result in the plugin only being active in the browser
    • It will not be available under Node.js

Option 1:

  • Using a Node.js configuration option 1 is the most common one
  • It lowers maintenence, because all plugins can be updated in one go

Option 2:

  • Option 2 is preferred if you want to work with a fixed configuration
  • Plugin updates only effect the corresponding wiki

Option 3:

  • This option allows to add and start an edition without the need to overwrite an existing tiddlywiki.info file
  • It allows you to start any edition as a client-server edition, even if the tiddlywiki.info file didn't specify it.

Option 4:

  • Is the exact same mechanism used for a single-file wiki
  • This mechanism should only be used in a Node.js configuration for testing and debugging purposes, since the plugins are stored in the tiddlers/ directory

Plugin Types

 14 novembre 2021 à 22h26

Plugins have a plugin-type field that determines how it is treated. The following values are defined by the core:

  • plugin - an ordinary plugin
  • theme - a theme plugin (see ThemeMechanism). Only the theme plugin named in the tiddler $:/theme is activated at any one time (along with any dependent theme plugins)
  • language - a language plugin (see TranslationMechanism). Only the language plugin named in the tiddler $:/language is activated at any one time (along with any dependent language plugins)

The following plugin types are used internally by the core:

While not supported by the plugin library, it is also possible to use custom plugin types to build plugin-like behaviour with a custom user interface. Plugins with a custom type will automatically receive the same behaviour as plain plugins but can display a custom user interface using an appropriate view template segment.

By default, tiddlers within plugins with custom plugin types will not be registered as shadow tiddlers (the constituent tiddlers can still be addressed as subtiddlers by the TranscludeWidget, ViewWidget or the plugintiddlers Operator). Setting a configuration tiddler $:/config/RegisterPluginType/<plugin-type> to yes will cause the tiddlers within the plugin to be registered as shadow tiddlers.

PluginFolders

 13 juin 2022 à 13h35

Working with Plugin Folders

  • Arrange the PluginFolders containing the plugins in a convenient shared location
  • Use environment variables to tell TiddlyWiki to search those folders.
  • The plugins can be referenced in tiddlywiki.info by their name (e.g. tiddlytools/magic)
  • Place the PluginFolders containing the plugins in a plugins folder within the wiki folder. TiddlyWiki will attempt to include every subfolder as a plugin. Do not add the plugin names to tiddlywiki.info. Do not add the PluginFolders under a specific namespace:
├── plugins/
│   ├── relink/
│   │   ├── js/
│   │   ├── tiddlers/
│   │   └── plugin.info
│   └── relink-markdown/
│       ├── js/
│       ├── plugin.info
│       └── readme.tid
├── tiddlers/
└── tiddlywiki.info

Plugin.info File

On the server, plugins can be stored as ordinary JSON tiddlers but it is often more convenient to store them as separate tiddler files within folders. Plugin folders must contain a plugin.info file that contains the metadata for the plugin. It can also optionally identify files external to the plugin folder that should be loaded as tiddlers.

The plugin.info file should contain the following JSON structure:

The JSON structure for plugin tiddlers is as follows:

{
	"title": "$:/plugins/publisher/name",
	"name": "name",
	"description": "An exemplary plugin for demonstration purposes",
	"author": "JeremyRuston",
	"version": "1.2.3-alpha3",
	"core-version": ">=5.0.0",
	"source": "https://tiddlywiki.com/MyPlugin",
	"plugin-type": "plugin",
	"list": "readme license history"
}

By convention, the titles of the individual tiddlers are prefixed with the title of the containing plugin, but they are not restricted to do so.

Note that if the version field is omitted from a plugin.info file when the plugin folder is packed then it is automatically filled in by the core to the current core version number. This is to ensure that all the core plugins carry the correct version number. Generally plugin authors will want to ensure that they do explicitly specify a version number.

PluginMechanism

 13 juin 2022 à 13h44

Introduction

Plugins are bundles of tiddlers that are distributed and managed as a single unit. Users can install them with drag and drop, or using the plugin library.

Depuis : 5.1.22 Plugins that contain JavaScript modules require a reload of the wiki before they will work. Plugins that do not contain JavaScript modules are automatically dynamically loaded and unloaded.

Plugins can be used to package any tiddler content, including JavaScript modules that extend and enhance the core TiddlyWiki5 functionality. The tiddlers within registered plugins are ShadowTiddlers: they can be freely overwritten by creating a tiddler with the same title, but deleting that tiddler restores the underlying tiddler value from the plugin.

By convention, plugin titles have the form $:/plugins/<publisher>/<name>. Plugins that are part of the core TiddlyWiki distribution have titles of the form $:/plugins/tiddlywiki/<name>.

When running TiddlyWiki under Node.js, plugins can also be stored as individual tiddler files in PluginFolders.

Plugin Types

Plugins have a plugin-type field that determines how it is treated. The following values are defined by the core:

  • plugin - an ordinary plugin
  • theme - a theme plugin (see ThemeMechanism). Only the theme plugin named in the tiddler $:/theme is activated at any one time (along with any dependent theme plugins)
  • language - a language plugin (see TranslationMechanism). Only the language plugin named in the tiddler $:/language is activated at any one time (along with any dependent language plugins)

The following plugin types are used internally by the core:

While not supported by the plugin library, it is also possible to use custom plugin types to build plugin-like behaviour with a custom user interface. Plugins with a custom type will automatically receive the same behaviour as plain plugins but can display a custom user interface using an appropriate view template segment.

By default, tiddlers within plugins with custom plugin types will not be registered as shadow tiddlers (the constituent tiddlers can still be addressed as subtiddlers by the TranscludeWidget, ViewWidget or the plugintiddlers Operator). Setting a configuration tiddler $:/config/RegisterPluginType/<plugin-type> to yes will cause the tiddlers within the plugin to be registered as shadow tiddlers.

Plugin Dependencies

The simplest form of dependency between plugins is that one plugin can declare itself to be a sub-plugin of another plugin by specifying that plugin in the parent-plugin field. Sub-plugins are displayed in the control panel plugin chooser within the expandable area of their parent plugin. For example, the official plugin library includes the CodeMirror Plugin and also more than a dozen sub-plugins that extend the CodeMirror plugin with optional functionality. Note that sub-plugins cannot themselves have further sub-plugins.

Plugins can also use their dependents field to list the titles of any other plugins that should also be installed. Note that the list is not resolved recursively: dependents of dependents will not be installed.

When installing a plugin from the plugin library, both the parent-plugin and dependents fields are used to determine any additional plugins to be installed.

Note that the dependents field is also used by the ThemeMechanism and the LanguageMechanism to switch in dependent theme/language plugins.

Plugin Ordering

Using the Node.js client-server configuration plugins are activated in the following order:

  1. Plugins found using the OS environment variables
  2. Plugins stored in the wiki /plugins path
  3. Plugins specified in the command line
  4. Plugins imported by drag and drop as wiki content

Important:

  • Elements lower in the list take precedence
  • Including a plugin as an ordinary tiddler by drag and drop into the browser, will result in the plugin only being active in the browser
    • It will not be available under Node.js

Option 1:

  • Using a Node.js configuration option 1 is the most common one
  • It lowers maintenence, because all plugins can be updated in one go

Option 2:

  • Option 2 is preferred if you want to work with a fixed configuration
  • Plugin updates only effect the corresponding wiki

Option 3:

  • This option allows to add and start an edition without the need to overwrite an existing tiddlywiki.info file
  • It allows you to start any edition as a client-server edition, even if the tiddlywiki.info file didn't specify it.

Option 4:

  • Is the exact same mechanism used for a single-file wiki
  • This mechanism should only be used in a Node.js configuration for testing and debugging purposes, since the plugins are stored in the tiddlers/ directory

Plugin Fields

Plugins are stored as tiddlers with the following fields:

FieldDescription
author(optional) Author of plugin
dependentsList of dependencies: plugins that should be installed in order for this one to work
descriptionDescription of plugin
listNames of exposed plugin information tiddlers (see below)
nameBrief name of the plugin
plugin-priority(optional) Numerical priority (higher numbers install later, the core plugin has a priority of zero
plugin-typeGenerally plugin, language or theme; see PluginMechanism for details
parent-plugin(optional) Depuis : 5.1.22 Title of the plugin under which this plugin should be displayed as a sub-plugin in the control panel plugin chooser
source(optional) Source URL of plugin
textJSON encoding of the list of tiddlers comprising the plugin
titleTitle of plugin
typeMust be application/json
version(optional) Version string (should conform to SemanticVersioning convention)

More information

Plugins

 23 juin 2015 à 6h51

Plugins Disponibles

Ces plugins sont distribués sur tiddlywiki.com comme des éléments de la distribution principale à part entière.

Qu'est-ce qu'un plugin?

Un plugin, dans TiddlyWiki5, est un ensemble de tiddlers empaquetés dans un seul tiddler. Les Plugins sont utilisés pour distribuer des composants optionnels et personnalisés de TiddlyWiki.

Les tiddlers d'un plugin deviennent des tiddlers shadow.

Les Plugins peuvent contenir des modules JavaScript, des feuilles de styles, et des gabarits pour étendre les fonctionnalités de TiddlyWiki lui-même. Les plugins peuvent aussi être employés pour diffuser du texte oridinaire, des images ou tout autre contenu. Leurs mise à jour depuis leur source les traite comme une simple unité.

Se reporter au Mécanisme du Plugin pour plus de détail sur la façon dont les plugins sont implémentés en interne.

Installation d'un plugin à partir d'une bibliothèque de plugins

  1. Faites une sauvegarde du fichier HTML TiddlyWiki (voir à ce propos)
  2. Ouvrez votre TiddlyWiki dans un navigateur
  3. Ouvrez le Panneau de contrôle, cliquez sur l'onglet Plugins, et à nouveau sur un nouvel onglet Plugins
  4. Cliquez sur le bouton Installez un plugin
  5. À l'affichage de la bibliothèque officielle :
    1. Choisir entre plugins, thèmes et langages
    2. Utilisez la recherche et cliquez sur le chevron d'un plugin pour obtenir des détails
  6. Cliquez sur le bouton installez
  7. Une barre d'alerte vous propose de cliquer sur Sauvegarder puis de Rafraichir la page afin que les modifications soient prises en compte par TiddlyWiki
  8. Le plugin est maintenant prêt à être utilisé

Installation manuelle d'un plugin

  1. Faites une sauvegarde du fichier HTML TiddlyWiki (voir à ce propos)
  2. Ouvrez votre TiddlyWiki dans un navigateur
  3. Cherchez le lien vers le plugin, de type $:/plugins/tiddlywiki/exemple. Vous trouverez habituellement ce lien sur la page d'accueil du plugin (voir par exemple, https://tiddlywiki.com/plugins/tiddlywiki/katex/)
  4. Glissez le lien de type $:/plugins/tiddlywiki/exemple vers la fenêtre du navigateur affichant votre TiddlyWiki
  5. Sauvegardez votre TiddlyWiki
  6. Rafraichir la page afin que les modifications soient prises en compte
  7. Le plugin est maintenant prêt à être utilisé

Comment désinstaller/ supprimer un plugin

  1. Faites une sauvegarde du fichier HTML TiddlyWiki (voir à ce propos)
  2. # Ouvrez le Panneau de contrôle, cliquez sur l'onglet Plugins, et à nouveau sur un nouvel onglet Plugins
  3. Cliquez sur le plugin que vous voule supprimer pour ouvrir son tiddler
  4. Cliquez sur l'icone d'édition, puis sur l'icone de suppression du tiddler
  5. Sauvegardez votre TiddlyWiki
  6. Rafraichir la page afin que les modifications soient prises en compte
  7. Le plugin est maintenant désinstallé

Plugins by TheDiveO

 6 janvier 2021 à 15h10

A collection of plugins from TheDiveO.

http://thediveo.github.io

TheDiveO's Third Flow plugin construction system:

The ThirdFlow plugin brings to you another way to develop customisation plugins for TiddlyWiki 5. It is not enforcing a specific development flow, it simply tries to help you. Otherwise, it tries to stay out of your way.

TheDiveO's FontAwesome plugin:

The FontAwesome plugin supports embedding Font Awesome in TiddlyWiki 5. There is no need to install this font into your operating system in order to use it with TiddlyWiki 5. The font is already embedded in this TiddlyWiki 5 customisation plugin instead, so nothing else to install.

PluginsCS

 17 juin 2022 à 13h45

plugintiddlers Operator

 3 février 2015 à 19h03
purposeselect all shadow titles in the input plugins
inputa selection of plugin tiddler titles
parameternone
outputall shadow titles contained in the input plugins

Learn more about how to use Filters

plugintiddlers Operator (Examples)

 23 janvier 2015 à 22h30

[[$:/core]plugintiddlers[]]

PopupMechanism

 23 décembre 2015 à 22h27

The popup mechanism allows blocks of content to be selectively displayed and positioned with respect to an anchor. It has several parts:

  • StateTiddlers to record whether a popup is currently displayed or not
  • The RevealWidget to selectively display the popup content
    • Depuis : 5.2.4 For positioning the popups relative or absolute coordinates can be used. See Coordinate Systems for more information about usage and format.
    • For "sticky" popups — those that don't close when clicking inside one — set the class attribute to tc-popup-keep
  • The ButtonWidget to trigger the display of the popup by setting the state tiddler appropriately

power Operator

 20 novembre 2020 à 4h08
purposetreating each input title as a number, raise it to the power of the numeric value of the operand
inputa selection of titles
parameterN = a number
outputthe input as numbers, but with each one raised to the power of N

Learn more about how to use Filters

Depuis : 5.1.23

Examples

power Operator (Examples)

 20 novembre 2020 à 4h15

[[3]power[3]]

9 +[power[2]]

Pragma

 22 avril 2022 à h37

Un pragma est un composant spécial du WikiTexte qui permet de contrôler la façon dont la suite du texte est analysée.

Les pragmas occupent des lignes débutant par un \. Ils ne peuvent être placés qu'au début d'un texte, mais des lignes vides sont autorisées entre eux. Si une ligne de pragma apparaît plus loin dans le corps du texte, il n'est pas pris en compte et apparaît comme du texte ordinaire.

NDT : Depuis : 5.2.0 Les commentaires HTML <!-- texte de commentaire --> sont aussi autorisés avant et entre les pragmas, ce qui facilite la documentation du code WikiTexte.

Les pragmas suivants sont disponibles :

\define
introduit une définition de macro
\rules
permet d'ajuster l'ensemble des règles d'analyse du texte
\whitespace trim ou \whitespace notrim
Depuis : 5.1.15 contrôle si les caractères d'espacement sont retirés du début et de la fin de morceaux de texte (la valeur par défaut notrim n'entraîne aucun retrait). Ce paramètre est utile lorsque l'indentation ou les caractères d'espacement générés par les retours à la ligne perturbent la mise en forme du résultat.
\import <expression-de-filtre>
Depuis : 5.1.18 permet d'importer des définitions de macros à partir des tiddlers sélectionnés par une expression de filtre.

Pragma: \define

 19 avril 2023 à 11h31

The \define pragma is used to define macros. It is a shortcut syntax for the SetVariableWidget.

The usual form allows macros to span multiple lines.

\define <macro-name>(<param-name>[:<param-default-value>],<param-name>[:<param-default-value>]...)
<multiple-line-definition-text>
\end [<macro-name>]

Note that the \end marker can optionally specify the name of the macro to which it relates which allows macro definitions to be nested.

There is also a single line form for shorter macros:

\define <macro-name>(<param-name>[:<param-default-value>],<param-name>[:<param-default-value>]...) <single-line-definition-text>

The first line of the definition specifies the macro name and any parameters. Each parameter has a name and, optionally, a default value that is used if no value is supplied on a particular call to the macro.

The lines that follow contain the text of the macro text (i.e. the snippet represented by the macro name), until \end appears on a line by itself:

\define sayhi(name:"Bugs Bunny" address:"Rabbit Hole Hill")
Salut, Je suis $name$ et je vis à $address$.
\end

Alternatively, the entire definition can be presented on a single line without an \end marker:

\define sayhi(name:"Bugs Bunny") Hi, I'm $name$.

Macro definitions can be nested by specifying the name of the macro in the \end marker. For example:

\define special-button(caption:"Click me")
\define actions()
<$action-sendmessage $message="tm-notify" $param="HelloThere"/>
\end actions
<$button actions=<<actions>>>
$caption$
</$button>
\end special-button

<<special-button>>

Affichera ceci :

A more formal presentation of this syntax is also available.

Pragma: \function

 19 avril 2023 à 11h31

Depuis : 5.3.0 The \function pragma is used to define custom functions. It is a shortcut syntax for the SetVariableWidget.

The usual form allows custom functions to span multiple lines:

\function <function-name>(<param-name>[:<param-default-value>],<param-name>[:<param-default-value>]...)
<multiple-line-definition-text>
\end [<function-name>]

Note that the \end marker can optionally specify the name of the function to which it relates, enabling function definitions to be nested inside procedures, macros or widget definitions.

There is also a single line form for shorter functions:

\function <function-name>(<param-name>[:<param-default-value>],<param-name>[:<param-default-value>]...) <single-line-definition-text>

The first line of the definition specifies the function name and any parameters. Each parameter has a name and, optionally, a default value that is used if no value is supplied on a particular call to the function. The lines that follow contain the text of the function (i.e. the snippet represented by the function name), until \end appears on a line by itself:

See Functions for more details.

Pragma: \import

 19 avril 2023 à 11h31

The \import pragma is used to import definitions from other tiddlers that are identified with a filter. It is a shortcut syntax for the ImportVariablesWidget.

\import <filter>

For example:

\import [all[shadows+tiddlers]tag[$:/tags/Global]]

Pragma: \parameters

 18 mai 2023 à 15h35

Depuis : 5.3.0 The \parameters pragma is used within procedure and widget definitions to declare the parameters that are expected, and their default values. It is a shortcut syntax for the ParametersWidget.

\parameters (<name>[:<default-value>],<name>[:<default-value>]...)

For example:

\parameters (firstname:"Joe",lastname:"Blogs")

To illustrate the use of \parameters pragma, see Core Icons which are parameterised. The first parameter size specified the size at which the icon should be rendered. For example see the text of $:/core/images/print-button tiddler. The first line defines the size parameter as \parameters (size:"22pt")

{{$:/core/images/print-button|16px}}
<$transclude $tiddler="$:/core/images/print-button" size="32px"/>

Affichera ceci :

In the above example, the first line shows a simple transclusion of $:/core/images/print-button icon with size parameter passed by position and is set to 16px. The second line is a transclusion of image with size parameter passed by name and is set to 32px.

Pragma: \parsermode

 17 janvier 2023 à 11h22

Depuis : 5.2.4

The \parsermode pragma adjusts whether the remaining text is parsed in block mode or inline mode. See WikiText Parser Modes for details of parser modes.

As with all pragmas, setting the parser mode this way can only be done at the start of text, not within the main body of the text.

\parsermode block or \parsermode inline

Pragma: \procedure

 24 juillet 2023 à 19h40

Depuis : 5.3.0 The \procedure pragma is used to define procedures. It is a shortcut syntax for the SetVariableWidget with an implicit ParametersWidget.

The usual form allows procedures to span multiple lines:

\procedure <procedure-name>(<param-name>[:<param-default-value>],<param-name>[:<param-default-value>]...)
<multiple-line-definition-text>
\end [<procedure-name>]

Note that the \end marker can optionally specify the name of the procedure to which it relates which allows procedure definitions to be nested.

There is also a single line form for shorter procedures:

\procedure <procedure-name>(<param-name>[:<param-default-value>],<param-name>[:<param-default-value>]...) <single-line-definition-text>

The first line of the definition specifies the procedure name and any parameters. Each parameter has a name and, optionally, a default value that is used if no value is supplied on a particular call to the procedure. The lines that follow contain the text of the procedure text (i.e. the snippet represented by the procedure name), until \end appears on a line by itself:

For example:

\procedure sayhi(name:"Bugs Bunny")
Hi, I'm <<name>>.
\end

<<sayhi "Jeremy">>

Alternatively, the entire definition can be presented on a single line without an \end marker:

\procedure sayhi(name:"Bugs Bunny") Hi, I'm <<name>>.

Procedure definitions can be nested by specifying the name of the procedure in the \end marker. For example:

\procedure special-button(caption:"Click me")
\procedure actions()
<$action-sendmessage $message="tm-notify" $param="HelloThere"/>
\end actions
<$button actions=<<actions>>>
<<caption>>
</$button>
\end special-button

<<special-button>>

Affichera ceci :

Use of Parameters Inside Procedures

The parameters can be declared inside procedures. The parameters widget is necessary in a procedure if you want to use computed default values. For example:

\procedure myproc()
<$parameters name={{$:/SiteTitle}} desc={{$:/SiteSubtitle}}>
This is <<name>> demonstrates <<desc>>.
</$parameters>
\end

<<myproc>>

Affichera ceci :

This is TiddlyWiki demonstrates un carnet de notes web personnel et non linéaire .

Caution in Using Positional Parameters

Procedures are a shortcut syntax for the SetVariableWidget with an implicit ParametersWidget, so generally there is no reason to have multiple parameters widgets within a definition. In the below example when passing x to myproc, it will also be set to a:

\procedure myproc(x:10)
\parameters (a:100, b:200)

x=<<x>>, a=<<a>>, b=<<b>>
\end

<<myproc 50>>

Affichera ceci :

x=50, a=50, b=200

The reason for that result is clearer if we consider an equivalent with explicit parameters widgets.

<$let myprog="""
\parameters (x:10)
\parameters (a:100, b:200)

x=<<x>>, a=<<a>>, b=<<b>>
""">
<<myprog 50>>
</$let>

Affichera ceci :

x=50, a=50, b=200

This is because those two parameters widgets are entirely independent. They are both processed as if the other parameter widget is not there.

The positional parameters are only required when using the parameterised transclusion shortcut syntax, and that in other cases it is generally clearer to use named parameters.

To prevent such situation of above example, pass parameters by name as below.

\procedure myproc(x:10)
\parameters (a:100, b:200)

x=<<x>>, a=<<a>>, b=<<b>>
\end

<<myproc x:50>>

Affichera ceci :

x=50, a=100, b=200

Pragma: \rules

 24 juillet 2023 à 19h40

The \rules pragma adjusts the set of parser rules used to parse the remaining text.

\rules only|except <rule-list>

The list of available parser rules can be consulted in $:/ControlPanel -> Info -> Advanced -> Parsing.

For example, in stylesheets it is typical to only use the rules associated with macros and transclusions:

\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline

Some users prefer not to use CamelCase links:

\rules except prettylink

Pragma: \whitespace

 21 septembre 2023 à 19h03

Depuis : 5.1.15 The \whitespace pragma determines how spaces and newlines are treated within wikitext.

  • notrim – whitespace text is not subject to special processing (the default)
  • trim – whitespace text is ignored

Note that the processing only applies to the printable text, and not to other text, such as the values of attributes.

The whitespace setting only applies to the parsed content in which it appears. The setting is inherited by embedded Procedure Definitions and Custom Widgets definitions, but is not inherited by Macro definitions.

\whitespace trim|notrim

For example:

\whitespace trim

Pragma: \widget

 19 avril 2023 à 11h31

Depuis : 5.3.0 The \widget pragma is used to define custom widgets. It is a shortcut syntax for the SetVariableWidget with an implicit ParametersWidget.

The usual form allows custom widgets to span multiple lines:

\widget <widget-name>(<param-name>[:<param-default-value>],<param-name>[:<param-default-value>]...)
<multiple-line-definition-text>
\end [<widget-name>]

Note that the \end marker can optionally specify the name of the widget to which it relates which allows widget definitions to be nested.

There is also a single line form for shorter widgets:

\widget <widget-name>(<param-name>[:<param-default-value>],<param-name>[:<param-default-value>]...) <single-line-definition-text>

The first line of the definition specifies the widget name and any parameters. Each parameter has a name and, optionally, a default value that is used if no value is supplied on a particular call to the widget. The lines that follow contain the text of the widget text (i.e. the snippet represented by the widget name), until \end appears on a line by itself:

See Custom Widgets for more details.

Pragmas

 21 juillet 2023 à 7h44

A pragma is a special component of WikiText that provides control over the way the remaining text is parsed.

Pragmas occupy lines that start with \. They can only appear at the start of the text of a tiddler, but blank lines and comments are allowed between them. If a pragma appears in the main body of the text, it is treated as if it was ordinary text.

Depuis : 5.2.6 Pragmas can have preceding optional whitespace characters.

The following pragmas are available:

precision Operator

 11 juin 2019 à 16h14
purposeconvert each number to a string with N significant digits
inputa selection of titles
parameterN = a number
outputthe input as numbers with N significant digits

Learn more about how to use Filters

Depuis : 5.1.20 See Mathematics Operators for an overview.

The precision operator returns a string representation of the input number that has exactly the specified number of significant digits, using whichever is shorter of exponential or fixed notation.

Examples

precision Operator (Examples)

 11 juin 2019 à 16h42

123456789 +[precision[3]]

123456789 +[precision[13]]

1.23E23 +[precision[90]]

prefix Operator

 18 février 2022 à 2h34
purposefilter the input titles by how they start
inputa selection of titles
suffixthe prefix operator uses a rich suffix, see below for details
parameterS = a string of characters
outputthose input titles that start with S
! outputthose input tiddlers that do not start with S

Learn more about how to use Filters

Depuis : 5.2.2

The prefix operator uses an extended syntax that permits multiple flags to be passed:

[prefix:<flag list>[<operand>]]
  • flag list: a comma delimited list of flags
  • operand: filter operand

The available flags are:

  • casesensitive: (default), this flag forces a case-sensitive match, where upper and lower case letters are considered different
  • caseinsensitive: overrides the default so that upper and lower case letters are considered identical for matching purposes

Examples

prefix Operator (Examples)

 18 février 2022 à 2h34

[tag[task]!prefix[Go]]

[tag[task]!prefix:caseinsensitive[go]]

[prefix[$:/languages/]]

[prefix[$:/]]
→ same as [is[system]]

prepend Operator

 8 novembre 2015 à 5h17
purposeprepend a range of items from an array to the list
inputa list of items
suffixan integer N, defaulting to all
parameterlist = the array of items to be prepended to the head of the list
outputa list with items prepended from the head of the operand array
! outputa list with items prepended from the tail of the operand array

Learn more about how to use Filters

prepend Operator (Examples)

 8 novembre 2015 à 5h17

These examples make use of the Days of the Week tiddler.

The operator may be used to prepend a number of items to the list.

[list[Days of the Week]prepend[Yesterday Today Tomorrow]]

The operand may list only items without spaces – to include items with spaces, use a reference to an array e.g. prepend the last three short days of the week to the list

[list[Days of the Week]!prepend:3{Days of the Week!!short}]

Préserver les tiddlers ouverts au redémarrage

 14 juin 2015 à 16h25

Ordinairement, le lancement de TiddlyWiki affiche les tiddlers spécifiés par le filtre du tiddler $:/DefaultTiddlers.

Quelquefois il est utile de réouvrir les mêmes tiddlers ouverts au moment de la sauvegarde du fichier. Pour cela, régler $:/DefaultTiddlers à ce filtre :

[list[$:/StoryList]]

Ce filtre renvoie les filtres spécifiés dans le tiddler $:/StoryList, le tiddler système que TiddlyWiki utilise pour mémoriser la suite de tiddlers du déroulé actuel.

previous Operator

 3 février 2015 à 19h05
purposefind which titles in a list field precede the input ones
inputa selection of titles
parameterT = a tiddler title
outputa selection containing each title that immediately precedes each of the input titles in the list field of T

Learn more about how to use Filters

Each input title is processed in turn, and its predecessor is located in the list field and appended to the output. If a title is not listed in the field, or is the first item there, then it contributes nothing to the output.

Examples

previous Operator (Examples)

 23 janvier 2015 à 22h34

These examples make use of the Days of the Week tiddler.

[[Wednesday]previous[Days of the Week]]

[[Monday]previous[Days of the Week]]

Tuesday Wednesday Thursday +[previous[Days of the Week]]

Procedure Calls

 19 avril 2023 à 11h31

Introduction

This tiddler describes the different ways in which procedure can be called.

Procedure Call Transclusion Shortcut

To call a procedure, place <<double angle brackets>> around the name and any parameter values.

<<my-procedure param:"This is the parameter value">>

By default, parameters are listed in the same order as in the procedure definition. A parameter can be labelled with its name and a colon to allow them to be listed in a different order.

If no value is specified for a parameter, the default value given for that parameter in the procedure definition is used instead. (If no default value was defined, the parameter is blank).

Each parameter value can be enclosed in 'single quotes', "double quotes", """triple double quotes""" or [[double square brackets]]. Triple double quotes allow a value to contain almost anything. If a value contains no spaces or single or double quotes, it requires no delimiters.

See the discussion about parser modes

Procedure Calls with $transclude Widget

The shortcut syntax expands to the $transclude widget with the $variable attribute specifying the name of the procedure to transclude.

<$transclude $variable="my-procedure" param="This is the parameter value"/>

The widget itself offers greater flexibility than the shortcut syntax, including the ability to specify dynamic parameter values.

Assigning Procedure Calls to Attribute Values

The text of a procedure can be directly assigned to an attribute of a widget or HTML element. The result of the procedure is not wikified, which means that parameter handling does not take place.

<div class=<<myclasses>>>
...
</div>

Using Procedure Calls in Filters

Procedure calls can be used in filters. The text is not wikified which again means that the parameters will be ignored.

<$list filter="[<my-procedure>]">
...
</$list>

Procedure Definitions

 21 septembre 2023 à 19h03

Introduction

This tiddler describes the different ways in which Procedures can be defined.

Procedure Definition Pragma

Procedures are created using the Pragma: \procedure at the start of a tiddler. The definitions are available in the rest of the tiddler that defines them, plus any tiddlers that it transcludes.

\procedure my-procedure(param)
This is the procedure text (param=<<param>>)
\end

Note that the Pragma: \whitespace setting is inherited from the parsing context in which the procedure definition occurs. That means that a tiddler containing multiple procedure definitions only needs a single whitespace pragma at the top of the tiddler, and the setting will be automatically inherited by the procedure definitions without needing the pragma to be repeated.

Procedure Definition with Set Widget

Procedures are implemented as a special kind of variable and so internally are actually defined with a $set widget.

<$set name="my-procedure" value="This is the procedure text">
...
</$set>
Note
that it is not currently possible to specify parameters when defining a procedure with the $set widget.

Importing Procedure Definitions

The Pragma: \import or $importvariables widget can be used to copy procedure definitions from another tiddler.

$:/tags/Global Tag

Global procedures can be defined using the SystemTag: $:/tags/Global.

The tag SystemTag: $:/tags/Global/View is used to define procedures that should only be available within the main view template and the preview panel.

The tag SystemTag: $:/tags/Global/View/Body is used to define procedures that should only be available within the main view template body and the preview panel.

Procedure Parameter Handling

 19 avril 2023 à 11h31

Introduction

Procedure parameters are made available as variables when the procedure contents are wikified.

Accessing Parameters as Variables

When procedures are wikified, the parameters can be accessed as variables.

For example:

\procedure say-hi(name,address)
Hi, I'm <<name>> and I live in <<address>>.
\end

<<say-hi name:"Bugs" address:"Rabbit Hole Hill">>

Affichera ceci :

Hi, I'm Bugs and I live in Rabbit Hole Hill.

Accessing parameters as variables only works in procedures that are wikified and not, for example, when a procedure is used as an attribute value.

Procedures

 19 avril 2023 à 11h31

Introduction

Depuis : 5.3.0 A procedure is a named snippet of text. They are typically defined with the Pragma: \procedure:

\procedure my-procedure(parameter:"Default value")
This is the procedure, and the parameter is <<parameter>>.
\end

The name wrapped in double angled brackets is used a shorthand way of transcluding the snippet. Each of these procedure calls can supply a different set of parameters:

<<my-procedure>>
<<my-procedure "The parameter">>

The parameters that are specified in the procedure call are made available as variables.

How Procedures Work

Procedures are implemented as a special kind of variable. The only thing that distinguishes them from ordinary variables is the way that the parameters are handled.

Using Procedures

Product Hunt Link

 

product Operator

 11 juin 2019 à 17h02
purposeproduce the product of the input numbers
inputa selection of titles
outputthe result of multiplying together the input as numbers

Learn more about how to use Filters

Depuis : 5.1.20 See Mathematics Operators for an overview.

Compare with the multiply Operator.

Examples

product Operator (Examples)

 11 juin 2019 à 17h02

=1 =2 =3 =4 =5 +[product[]]

[tag[HelloThere]get[text]length[]product[]]

ProductHunt-Badge.svg

 

Projectify by Nicolas Petton

 7 avril 2022 à 19h12

Project & todo management for TiddlyWiki.

https://github.com/ThaddeusJiang/Projectify

Projectify is a TiddlyWiki plugin for managing projects & todo lists, inspired by products like Todoist and Basecamp.

Projectify features:

  • An inbox for collecting tasks and thoughts
  • Projects to structure tasks together into separate todo-lists
  • Support for scheduling tasks
  • A dashboard to quickly view all projects, the inbox, or scheduled tasks

Note: The original site, https://projectify.wiki, no longer exists. The provided site is a maintained fork, though not by the original creator.

putafter Operator

 8 novembre 2015 à 5h18
purposemove N trailing items after the marker
inputa list of items
suffixan integer N, defaulting to 1
parametermarker = the list item to be used as a marker
outputre-ordered list of items

Learn more about how to use Filters

putafter Operator (Examples)

 8 novembre 2015 à 5h18

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]] +[putafter[Wednesday]]

[list[Days of the Week]] +[putafter:2[Tuesday]]

[list[Days of the Week]] [[Yesterday]] [[Today]] [[Tomorrow]] +[putafter:3[Tuesday]]

putbefore Operator

 
purposemove N trailing items before the marker
inputa selection of titles
suffixan integer N, defaulting to 1
parametermarker = an integer, defaulting to 1
outputthe first N input titles

Learn more about how to use Filters

putbefore Operator (Examples)

 8 novembre 2015 à 5h19

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]] +[putbefore[Wednesday]]

[list[Days of the Week]] +[putbefore:2[Tuesday]]

[list[Days of the Week]] [[Yesterday]] [[Today]] [[Tomorrow]] +[putbefore:3[Tuesday]]

putfirst Operator

 8 novembre 2015 à 5h19
purposemove N trailing items to the head of the list
inputa list of items
suffixan integer N, defaulting to 1
parameterignored
outputre-ordered list of items

Learn more about how to use Filters

putfirst Operator (Examples)

 8 novembre 2015 à 5h19

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]] +[putfirst[]]

[list[Days of the Week]] +[putfirst:2[]]

[list[Days of the Week]] [[Yesterday]] [[Today]] [[Tomorrow]] +[putfirst:-2[]]

putlast Operator

 8 novembre 2015 à 5h20
purposemove N leading items to the tail of the list
inputa list of items
suffixan integer N, defaulting to 1
parameterignored
outputre-ordered list of items

Learn more about how to use Filters

putlast Operator (Examples)

 8 novembre 2015 à 5h20

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]] +[putlast[]]

[list[Days of the Week]] +[putlast:2[]]

one two three [list[Days of the Week]] +[putlast:-3[]]

Q: How can I style a tiddler if it has "this" AND "that" tag?

 11 avril 2018 à 18h39

Answer: Depuis : 5.1.16

If tiddler has both: this AND tag that create an orange border.

[data-tags*="bar"][data-tags*="froz"] {
  border: 2px solid orange;
}

If your CSS looks like this:

[data-tags~="this"] {
  border: 2px solid blue;
}

[data-tags~="that"] {
  border: 2px solid red;
}

this creates a blue border that creates a red border If you swap positions, you get it the other way around.

Learn more about possible attributes!

Q: How can I style a tiddler if it has "this" OR "that" tag?

 11 avril 2018 à 18h39

Answer: Depuis : 5.1.16

Either tag this or tag that create a red border.

[data-tags~="this"],
[data-tags~="that"] {
  border: 2px solid red;
}

Learn more about possible attributes!

Q: How can I use a custom field to style a tiddler?

 11 avril 2018 à 18h39

Consider the following usecase: Depuis : 5.1.16

There is a field named: rank, which can hold different values eg: species.

Answer:

The idea is now: We dynamically create the stylesheet. The style-sheet can look like this:

title: myStyles
tags: $:/tags/Stylesheet

<$list filter="[rank[species]]"> 
[data-tiddler-title^="<$view field=title/>"] .tc-tiddler-body {
    column-count: 2;
}
</$list> 

This creates a CSS rule for every tiddler-title, that has a field rank and value species.

Learn more about possible attributes!

Q: Is there a way to create dynamic stylesheets?

 11 avril 2018 à 18h39

Answer: Depuis : 5.1.16

Yes, see: Q: How can I use a custom field to style a tiddler?

Q: What if a tiddler has no tags?

 11 avril 2018 à 18h39

Answer: Depuis : 5.1.16

  • If a tiddler has no tags, but needs styling use: data-tiddler-title as CSS selector
    • There is only one tiddler
  • If a user wants to style system tiddlers in a custom way: use: [data-tiddler-title^="$:"/] as a selector
    • using the TW namespace functionality
  • If the user wants special behaviour for tagged tiddlers. eg: Learning
    • use: [data-tags*="Learning"] as CSS selector.

The names I'm using are only used for documentation purpose, without changing the existing wiki. I don't want, that the docs has side effects.

Learn more about possible attributes!

qualify Macro

 21 février 2015 à 22h38

The qualify macro is an important part of the StateMechanism.

It returns a unique string that encodes its position within the widget tree, as identified by the stack of transcluded tiddlers that lead to that position.

It is implemented using the transclusion variable.

Parameters

title
The prefix for the returned string, normally a tiddler title

Exemples

qualify Macro (Examples)

 

The results returned by the qualify macro depend on its location in the transclusion stack.

The two examples below are identical, but produce different results because the second one has been transcluded from another tiddler.

Each example shows the result of calling qualify and then the value of the transclusion variable.

<ul>
<li><code><<qualify "BaseTiddler">></code></li>
<li><code><<transclusion>></code></li>
</ul>

<ul>
<li><code><<qualify "BaseTiddler">></code></li>
<li><code><<transclusion>></code></li>
</ul>

QualifyWidget

 25 janvier 2022 à 16h30

Introduction

The $qualify widget sets a variable to a unique string that encodes its position within the widget tree, as identified by the stack of transcluded tiddlers that lead to that position.

Internally, it is implemented using the transclusion variable.

Content and Attributes

The content of the $qualify widget is the scope for the value assigned to the name variable.

AttributeDescription
titleThe prefix for the string, normally a tiddler title
nameThe name of the variable to be set to the unique string

Examples

The two examples below are identical, but produce different results because the second one has been transcluded from another tiddler.

Each example shows the result of calling qualify and then the value of the transclusion variable.

<$qualify title="BaseTiddler" name="iamnotanumber">
<ul>
<li><code><<iamnotanumber>></code></li>
<li><code><<transclusion>></code></li>
</ul>
</$qualify>
<$qualify title="BaseTiddler" name="iamnotanumber">
<ul>
<li><code><<iamnotanumber>></code></li>
<li><code><<transclusion>></code></li>
</ul>
</$qualify>

Remarks

In most cases it will be simpler to use the qualify Macro.

Quick Start

 

Quick Start: Desktop

 

Download the official desktop application for macOS, Windows and Linux

Quick Start: DIY

 

Find the configuration that is right for you to get the full benefits of TiddlyWiki

Quick Start: Tiddlyhost

 

The easiest way to get started with an online TiddlyWiki

Quick Start: Xememex

 

For companies and teams, a multiuser TiddlyWiki from Federatial

Quine

 23 juin 2015 à 9h09

Une Quine est un programme d'ordinateur qui se programme lui-même.

TiddlyWiki est un exemple inhabituel de quine : c'est lié à la capacité de son noyau à produire une copie de son propre code source pour sauver indépendamment ses propres modifications.

RadioWidget

 9 octobre 2021 à 13h16

Introduction

The radio widget displays an HTML <input type="radio"> that reflects whether a given tiddler field has a specified value. Selecting the radio button sets to the tiddler field to the value.

Content and Attributes

The content of the <$radio> widget is displayed within an HTML <label> element also containing the radio button. This means that clicking on the content will have the same effect as clicking on the button itself.

AttributeDescription
tiddlerTitle of the tiddler to manipulate (defaults to the current tiddler)
fieldThe field of the tiddler bound to the radio button
index Depuis : 5.1.14 The index of the tiddler being DataTiddler bound to the radio button (takes precedence over field)
default Depuis : 5.2.0 The default value to be used for matching if the tiddler, field or index are missing
valueThe value for the field or index of the tiddler
classThe CSS classes assigned to the label around the radio button Depuis : 5.1.14 tc-radio is always applied by default, as well as tc-radio-selected when selected
actions Depuis : 5.1.23 Optional string containing ActionWidgets to be triggered when the value changes.
The variable: actionValue is available for the actions
disabled Depuis : 5.1.23 Optional. Set to "yes" to disable the radio input. Defaults to "no"

Field Mode

This example uses the radio widget to change the modifier field of this tiddler:

<$radio field="modifier" value="JoeBloggs"> Joe Bloggs</$radio>
<$radio field="modifier" value="JaneBloggs"> Jane Bloggs</$radio>

Affichera ceci :

Index Mode

Using the radio widget in index mode requires the index attribute to specify the name of the index of a DataTiddler to which the specified value is assigned.

This example sets the Tree Frog index in the tiddler AnimalColours:

<$tiddler tiddler="AnimalColours">
<$radio index="Tree Frog" value="green"> green</$radio>
<$radio index="Tree Frog" value="brown"> brown</$radio>
</$tiddler>

Affichera ceci :

Using Actions

When you select an option below the following acitons will occur:

The wikitext of this example is shown below:

\define newText() value: $(actionValue)$

\define radioActions()
<$action-sendmessage $message="tm-notify" $param="RadioWidget ExampleTemplate" value=<<actionValue>> current=<<currentTiddler>> />
<$action-createtiddler $basetitle="$:/temp/test/value" $overwrite="yes" text=<<newText>>/>
<$action-navigate $to="$:/temp/test/value"/>
\end

!! Using Actions

When you select an option below the following acitons will occur:

* the value is written to $:/temp/test/value
* the ''id'' field of tiddler: $:/temp/test will be updated
* a notification showing the ''actionValue'' will be shown

<$tiddler tiddler="$:/temp/test">

<$radio field="id" value="a" actions=<<radioActions>> > Option a </$radio>

<$radio field="id" value="b" actions=<<radioActions>> > Option b </$radio>

<$radio field="id" value="c" actions=<<radioActions>> > Option c </$radio>

</$tiddler>

The wikitext of this example is shown below:

<$codeblock code={{RadioWidget Example!!text}}/>

RadioWidget Example

 7 mars 2021 à 10h20

Using Actions

When you select an option below the following acitons will occur:

The wikitext of this example is shown below:

\define newText() value: $(actionValue)$

\define radioActions()
<$action-sendmessage $message="tm-notify" $param="RadioWidget ExampleTemplate" value=<<actionValue>> current=<<currentTiddler>> />
<$action-createtiddler $basetitle="$:/temp/test/value" $overwrite="yes" text=<<newText>>/>
<$action-navigate $to="$:/temp/test/value"/>
\end

!! Using Actions

When you select an option below the following acitons will occur:

* the value is written to $:/temp/test/value
* the ''id'' field of tiddler: $:/temp/test will be updated
* a notification showing the ''actionValue'' will be shown

<$tiddler tiddler="$:/temp/test">

<$radio field="id" value="a" actions=<<radioActions>> > Option a </$radio>

<$radio field="id" value="b" actions=<<radioActions>> > Option b </$radio>

<$radio field="id" value="c" actions=<<radioActions>> > Option c </$radio>

</$tiddler>

The wikitext of this example is shown below:

<$codeblock code={{RadioWidget Example!!text}}/>

RadioWidget ExampleTemplate

 30 novembre 2020 à 18h24

value =

Railroad Diagrams

 17 novembre 2021 à 21h24

Railroad diagrams, sometimes called syntax diagrams, are a visual way of explaining the syntax rules of a computer language. Reading one is like reading a public transport map.

Each diagram starts on the left and ends on the right. Simply follow any line from the startpoint to the endpoint. All the alternative lines are equally valid. A line will sometimes jump over an item that is optional, or loop back to indicate that an item can be repeated.

startoptionalrepeated,end

In the example above, a comma appears between each occurrence of the repeated item. The comma path runs from right to left, and can only be reached by first passing through repeated.

Characters in round boxes are literal, i.e. they denote themselves. A name in a rectangular box denotes a further railroad diagram.

The railroad diagrams in TiddlyWiki's documentation are generated with the Railroad Plugin.

Plugin Railroad

 15 juin 2015 à 8h00

Ce plugin propose le widget <$railroad> pour générer des diagrammes chemin de fer en images SVG.

De plus, le diagramme de notation peut être stocké dans un tiddler dédié avec son champ type réglé sur text/vnd.tiddlywiki.railroad, ce tiddler pourra être ainsi simplement transclu partout où il sera nécessaire.

Le plugin est basé sur une bibliothèque de Tab Atkins qui a été étendue pour la rendre plus malléable, notamment par la possibilité des composant d'un diagramme de fonctionner comme des liens ou d'être transclus à partir d'autres tiddlers.

Le widget railroad utilise une notation spéciale pour construire les composants définis çi-après.

Ici, x et y remplacent tout composant.

Les noms (contrairement aux chaines cotées) ne sont composés que de valeurs débutant par une lettre et contenant seulement lettres, chiffres, soulignements, points et traits d'union.


série
<-x->
  • Une série de composants
  • Les délimiteurs <- et -> permettent d'obliger un composant unique à être traité comme une série. C'est parfois utile pour mettre en valeur un diagramme

optionnel
[:x]
  • Un composant qui peut être omis
  • Les deux points font qu'x soit en tout premier

répété
{x+y}
  • Une liste d'un ou plusieurs x
  • Le suffixe + ajoute y comme séparateur entre tout x et le suivant

répétition optionnelle
[{:x+y}]
  • Une liste optionnelle de x, i.e. une liste de zéro ou plusieurs x

choix
(:x|)
  • Un ensemble d'alternatives
  • Les deux points indiquent quelle branche arrive en tout premier. Par défaut, c'est la première branche

chaine / terminal
"texte"'texte'"""texte"""
  • Un composant littéral ou terminal
  • Ci-après les règles TiddlyWiki normales pour les chaines cotées

nonterminal
nom<chaine>
  • Un composant nonterminal, i.e. le nom d'un autre diagramme

commentaire
/chaine/
  • Un commentaire

dummy
-
  • L'absence de composant

lien
[[x|nomchaine]]
  • Un lien vers le titre d'un tiddler ou l'URI donné par la chaine ou le nom

transclusion
{{nomchaine}}
  • Interprète le contenu d'un autre tiddler comme un diagramme syntaxique et le transclut dans le diagramme courant

pragma arrow
\flêcheouinon
  • Contrôle si les chemins répétés ont une flêche ou pas
  • Peut être réglé sur oui ou non dans un diagramme intermédiaire, si désiré

pragma debug
\debug
  • Provoque l'affichage du diagramme syntaxique d'un diagramme

pragma start/end
\start\endaucunsimpledouble
  • Règle le style des diagrammes startpoint ou endpoint

range Operator

 7 septembre 2021 à 18h03
purposegenerate a range of numbers
inputignored
parameterN = a range specification, like [1],[5]
outputa series of evenly spaced numbers ranging from <begin> to <end>
! outputa series of evenly spaced numbers ranging from <begin> to <end> in reverse order

Learn more about how to use Filters

The range operator produces a list of numbers counting up or down. It is useful for counting and numbering.

Depuis : 5.2.0 The range operator has been updated to use multiple operands to specify its parameters. Prior to this version, the range operator only had one operand, with the three parts delimited by ,, ; or :.

[range[<begin>]]
[range[<begin>],[<end>]]
[range[<begin>],[<end>],[<step>]]

The behaviour depends on the number of operands:

ParameterOutput
<end>Whole numbers up to <end>
<begin>,<end>Numbers from <begin> to <end>, spaced by whole numbers
<begin>,<end>,<step>Numbers from <begin> to <end> spaced out by <step>

Each part must be a number, and works as follows:

  • <begin>: start counting at this number.
    • Defaults to 1 if <end> is at least 1 (or -1 if <end> is at most -1).
  • <end>: stop counting at this number.
    • This number will appear in the list unless it falls between two steps.
  • <step>: count up (or down) by this amount.
    • Defaults to 1.
    • Cannot be zero.
    • We always count from <begin> toward <end>, whether <step> is positive or negative.

The number of decimal points in the output is fixed, and based on the operand with the most decimal points.

To prevent the browser from freezing, range is currently limited to 10,000 values.

Examples

[range[7]]

1 2 3 4 5 6 7

[range[1],[10]]

1 2 3 4 5 6 7 8 9 10

[range[17],[13]]

17 16 15 14 13

[range[1.001],[5],[1]]

1.001 2.001 3.001 4.001

[range[.5],[1.4],[.004]]

0.500 0.504 0.508 0.512 0.516 0.520 0.524 0.528 0.532 0.536 0.540 0.544 0.548 0.552 0.556 0.560 0.564 0.568 0.572 0.576 0.580 0.584 0.588 0.592 0.596 0.600 0.604 0.608 0.612 0.616 0.620 0.624 0.628 0.632 0.636 0.640 0.644 0.648 0.652 0.656 0.660 0.664 0.668 0.672 0.676 0.680 0.684 0.688 0.692 0.696 0.700 0.704 0.708 0.712 0.716 0.720 0.724 0.728 0.732 0.736 0.740 0.744 0.748 0.752 0.756 0.760 0.764 0.768 0.772 0.776 0.780 0.784 0.788 0.792 0.796 0.800 0.804 0.808 0.812 0.816 0.820 0.824 0.828 0.832 0.836 0.840 0.844 0.848 0.852 0.856 0.860 0.864 0.868 0.872 0.876 0.880 0.884 0.888 0.892 0.896 0.900 0.904 0.908 0.912 0.916 0.920 0.924 0.928 0.932 0.936 0.940 0.944 0.948 0.952 0.956 0.960 0.964 0.968 0.972 0.976 0.980 0.984 0.988 0.992 0.996 1.000 1.004 1.008 1.012 1.016 1.020 1.024 1.028 1.032 1.036 1.040 1.044 1.048 1.052 1.056 1.060 1.064 1.068 1.072 1.076 1.080 1.084 1.088 1.092 1.096 1.100 1.104 1.108 1.112 1.116 1.120 1.124 1.128 1.132 1.136 1.140 1.144 1.148 1.152 1.156 1.160 1.164 1.168 1.172 1.176 1.180 1.184 1.188 1.192 1.196 1.200 1.204 1.208 1.212 1.216 1.220 1.224 1.228 1.232 1.236 1.240 1.244 1.248 1.252 1.256 1.260 1.264 1.268 1.272 1.276 1.280 1.284 1.288 1.292 1.296 1.300 1.304 1.308 1.312 1.316 1.320 1.324 1.328 1.332 1.336 1.340 1.344 1.348 1.352 1.356 1.360 1.364 1.368 1.372 1.376 1.380 1.384 1.388 1.392 1.396 1.400

RangeWidget

 9 octobre 2021 à 13h16

Introduction

The range widget displays an HTML <input type="range"> that reflects a given tiddler field numeric value. Adjusting the range slider sets the tiddler field to the value.

Content and Attributes

The content of the <$range> widget is ignored.

AttributeDescription
tiddlerTitle of the tiddler to manipulate (defaults to the current tiddler)
fieldThe field of the tiddler bound to the range slider
index Depuis : 5.1.22 The index of the tiddler, a DataTiddler, to which the radio button is bound
minThe minimum value to be able to be set by the <$range> widget
maxThe maximum value to be able to be set by the <$range> widget
incrementThe minimum amount by which a value may be changed. Defaults to 1
defaultIf the field is missing or empty this is the default position for the widget handle relative to the min and max values
classCSS classes to be assigned to the label around the range slider
actions Depuis : 5.1.23 Optional, A string containing ActionWidgets to be triggered when the value changes.
The variable: actionValue is available for all actions.
The variable: actionValueHasChanged is always yes here.
actionsStart Depuis : 5.1.23 Optional, A string containing ActionWidgets to be triggered when the "handle" is clicked.
The variable: actionValueHasChanged is always no here
actionsStop Depuis : 5.1.23 Optional, A string containing ActionWidgets to be triggered when the "handle" is released.
The variable: actionValueHasChanged is yes, if the new-value is different to the start-value
disabled Depuis : 5.1.23 Optional, disables the range input if set to "yes". Defaults to "no"

Examples

Range -1 to 10

<$range tiddler="$:/_RangeDemo/1" min="-1" max="10" default="1" increment="1"/> {{$:/_RangeDemo/1}}

Affichera ceci :

Range 0 to 1

<$range tiddler="$:/_RangeDemo/2" min="0" max="1" default=".01" increment=".01"/> {{$:/_RangeDemo/2}}

Affichera ceci :

Using Actions


The wikitext of this example is shown below:

\define getText() $(text)$ - value: $(value)$ - changed: $(actionValueHasChanged)$

\define range-log(text:"", value:"", tiddler:"$:/temp/range/log")
<$vars text="""$text$""" value="""$value$""" >
<$action-setfield $tiddler="""$tiddler$""" $index=<<now "0hh-0mm-0ss:0XXX">> $value=<<getText>>/>
</$vars>
\end

\define clear-range-log(tiddler:"$:/temp/range/log")
<$action-setfield $tiddler="""$tiddler$""" text="{}" show=show/>
\end

\define logTiddler()$:/temp/range/log

\define clearLogButton()<$button actions=<<clear-range-log>>>Clear Log</$button>

\define actionsStop()
<$macrocall $name="range-log" text="                    actionsStop" value=<<actionValue>> />
\end

\define actionsStart()
<$macrocall $name="range-log" text="                    actionsStart" value=<<actionValue>> />
\end

\define actions()
<$macrocall $name="range-log" text="actions" value=<<actionValue>> />
\end

!! Using Actions

<$range tiddler="$:/temp/range/1__" min="-1" max="10" default="1" increment="1"
  actionsStart=<<actionsStart>> actionsStop=<<actionsStop>> actions=<<actions>>/> {{$:/temp/range/1__}}

<$range tiddler="$:/temp/range/__2" min="0" max="1" default=".01" increment=".01"
  actionsStart=<<actionsStart>> actionsStop=<<actionsStop>> actions=<<actions>> /> {{$:/temp/range/__2}} 

<$checkbox tiddler=<<logTiddler>> field="show" checked="show" unchecked="hide"> Show log</$checkbox> <<clearLogButton>>

<$reveal stateTitle=<<logTiddler>> stateField="show" type="match" text="show">
<$transclude tiddler=<<logTiddler>> />
</$reveal>

---

The wikitext of this example is shown below:

<$codeblock code={{RangeWidget Example!!text}}/>

RangeWidget Example

 7 mars 2021 à 10h20

Using Actions


The wikitext of this example is shown below:

\define getText() $(text)$ - value: $(value)$ - changed: $(actionValueHasChanged)$

\define range-log(text:"", value:"", tiddler:"$:/temp/range/log")
<$vars text="""$text$""" value="""$value$""" >
<$action-setfield $tiddler="""$tiddler$""" $index=<<now "0hh-0mm-0ss:0XXX">> $value=<<getText>>/>
</$vars>
\end

\define clear-range-log(tiddler:"$:/temp/range/log")
<$action-setfield $tiddler="""$tiddler$""" text="{}" show=show/>
\end

\define logTiddler()$:/temp/range/log

\define clearLogButton()<$button actions=<<clear-range-log>>>Clear Log</$button>

\define actionsStop()
<$macrocall $name="range-log" text="                    actionsStop" value=<<actionValue>> />
\end

\define actionsStart()
<$macrocall $name="range-log" text="                    actionsStart" value=<<actionValue>> />
\end

\define actions()
<$macrocall $name="range-log" text="actions" value=<<actionValue>> />
\end

!! Using Actions

<$range tiddler="$:/temp/range/1__" min="-1" max="10" default="1" increment="1"
  actionsStart=<<actionsStart>> actionsStop=<<actionsStop>> actions=<<actions>>/> {{$:/temp/range/1__}}

<$range tiddler="$:/temp/range/__2" min="0" max="1" default=".01" increment=".01"
  actionsStart=<<actionsStart>> actionsStop=<<actionsStop>> actions=<<actions>> /> {{$:/temp/range/__2}} 

<$checkbox tiddler=<<logTiddler>> field="show" checked="show" unchecked="hide"> Show log</$checkbox> <<clearLogButton>>

<$reveal stateTitle=<<logTiddler>> stateField="show" type="match" text="show">
<$transclude tiddler=<<logTiddler>> />
</$reveal>

---

The wikitext of this example is shown below:

<$codeblock code={{RangeWidget Example!!text}}/>

rboue's plugins for TiddlyWiki

 6 janvier 2021 à 15h10

Featuring plugins that integrate two interesting new capabilities:

http://rboue.tiddlyspot.com

I developed some plugins related to engineering tasks.

After using them for personal projects I'm glad to share with TiddlyWiki community.

Reading data from JSON tiddlers

 11 juin 2022 à 11h47

See JSON in TiddlyWiki for an overview of using JSON in TiddlyWiki.

Filter Operators for Accessing JSON Data

The following filter operators allow values to be read from JSON data:

  • jsonget to retrieve the values of a property in JSON data
  • jsontype to retrieve the type of a JSON value
  • jsonindexes to retrieve the names of the fields of a JSON object, or the indexes of a JSON array
  • jsonextract to retrieve a JSON value as a string of JSON

Text References for Accessing JSON Data

Text references are a simple shortcut syntax to look up the value of a named property. For example, if a DictionaryTiddler called MonthDays contains:

oct:31
nov:30
dec:31

... then {{MonthDays##nov}} will resolve to the value 30.

The same is true if MonthDays is a JSONTiddler with the following content:

{"oct":31,"nov":30,"dec":31}

ReadMe

 12 octobre 2014 à 20h10

Bienvenue sur TiddlyWiki, un carnet de notes personnel web et non-linéaire que tout le monde peut utiliser et conserver, sans dépendre d'une quelconque entreprise.

TiddlyWiki est un wiki interactif en JavaScript. Il peut être utilisé dans le navigateur sous forme de fichier HTML autonome ou comme une puissante application Node.js. Il est extrêmement personnalisable : l'interface utilisateur dans son intégralité est elle-même implémentée en WikiText recomposable à volonté.

Plus d'informations et démonstrations sur https://tiddlywiki.com

Installation de TiddlyWiki sur Node.js

  1. Installez Node.js
    • Linux
      Debian/Ubuntu :
      apt install node.js
      Et éventuellement :
      apt install npm
      Arch Linux
      pacman -S tiddlywiki
      (installe node et tiddlywiki)
    • Mac
      brew install node
    • Android
    • Autres
  2. Ouvrez un terminal de ligne de commande et saisissez :
    npm install -g tiddlywiki
    En cas d'erreur, il faudra peut-être relancer la commande en tant qu'administrateur :
    sudo npm install -g tiddlywiki (Mac/Linux)
  3. Vérifiez que TiddlyWiki est bien installé en tapant :
    tiddlywiki --version
  4. En réponse, vous devriez voir TiddlyWiki renvoyer la version en cours (par exemple 5.3.2-prerelease ; d'autres informations de débogage peuvent aussi apparaître).
  5. Faites l'essai :
    1. tiddlywiki monnouveauwiki --init server pour créer un dossier pour un nouveau wiki qui inclura des composants orientés serveur
    2. tiddlywiki monnouveauwiki --listen pour démarrer TiddlyWiki
    3. Positionnez votre navigateur sur l'adresse http://127.0.0.1:8080/
    4. Essayez d'éditer et de créer de nouveaux tiddlers
  6. Eventuellement, créez une copie hors-ligne :
    • Cliquez sur le bouton Enregistrer les modifications de la barre latérale, OU
    • tiddlywiki monnouveauwiki --build index

L'option -g demande à Node.js d'installer TiddlyWiki globalement. Sans elle, TiddlyWiki sera disponible seulement dans le répertoire où vous l'avez installé.

Si vous utilisez Debian ou une distribution Linux dérivée de Debian et que vous recevez une erreur node: command not found alors que le paquet node.js est installé, vous devrez peut-être créer un lien symbolique entre nodejs et node. Consultez le manuel de votre distribution et de whereis pour créer un lien correctement. Voir le rapport d'erreur 1434 sur github.

Exemple pour Debian 8.0 : sudo ln -s /usr/bin/nodejs /usr/bin/node

Vous pouvez aussi installer d'anciennes versions de TiddlyWiki ainsi :

npm install -g tiddlywiki@5.1.13

Utilisation de TiddlyWiki sur Node.js

TiddlyWiki5 peut être utilisé depuis la ligne de commande, dans le but d'effectuer un ensemble d'opérations qui manipulent dossiers TiddlyWiki, fichiers de tiddlers et fichiers TiddlyWiki.

Par exemple, la commande ci-dessous charge les tiddlers d'un fichier TiddlyWiki HTML, et enregistre l'un d'eux dans un fichier HTML statique :

tiddlywiki --verbose --load monwiki.html --rendertiddler LisezMoi ./lisezmoi.html

L'exécution du programme tiddlywiki depuis la ligne de commande démarre le noyau TiddlyWiki, charge les plugins de base et met en place une structure de wiki vide. Puis les arguments de la ligne de commande sont traités à la suite, de gauche à droite. Les arguments sont séparés par des espaces.

Le premier argument est un chemin optionnel vers le dossier à charger. Si absent, le répertoire courant est utilisé.

Suivent les commandes proprement dites, avec leurs arguments spécifiques, chaque commande étant annoncée par le préfixe --.

tiddlywiki [<cheminverslewiki>] [--<commande> [<arg>[,<arg>]]]

Les commandes disponibles sont :

Mise à niveau de TiddlyWiki sur Node.js

Si vous avez installé TiddlyWiki sur Node.js de manière standard, vous pouvez le mettre à jour dès qu'une nouvelle version est publiée, à l'aide de la commande suivante :

npm update -g tiddlywiki

Sur Mac ou Linux, vous devrez ajouter sudo :

sudo npm update -g tiddlywiki

Voir aussi

Ce fichier readme a été généré automatiquement par TiddlyWiki

ReadMeBinFolder

 8 septembre 2014 à 16h08

Script Files

The TiddlyWiki5 repository contains several scripts in the bin folder that you can use to automate common tasks, or as a useful starting point for your own scripts. See Scripts for building tiddlywiki.com for details of the scripts used to build and release https://tiddlywiki.com/.

All the scripts expect to be run from the root folder of the repository.

serve: serves tw5.com

./bin/serve.sh -h
./bin/serve.sh [edition dir] [username] [password] [host] [port]

Or:

./bin/serve.cmd -h
./bin/serve.cmd [edition dir] [username] [password] [host] [port]

This script starts TiddlyWiki5 running as an HTTP server, defaulting to the content from the tw5.com-server edition. By default, the Node.js serves on port 8080. If the optional username parameter is provided, it is used for signing edits. If the password is provided then HTTP basic authentication is used. Run the script with the -h parameter to see online help.

To experiment with this configuration, run the script and then visit http://127.0.0.1:8080 in a browser.

Changes made in the browser propagate to the server over HTTP (use the browser developer console to see these requests). The server then syncs changes to the file system (and logs each change to the screen).

test: build and run tests

This script runs the test edition of TiddlyWiki on the server to perform the server-side tests and to build test.html for running the tests in the browser.

lazy: serves tw5.com with lazily loaded images

./bin/lazy.sh <username> [<password>]

Or:

./bin/lazy.cmd <username> [<password>]

This script serves the tw5.com-server edition content with LazyLoading applied to images.

Reddit Logo

 

Reduce Filter Run Prefix

 24 novembre 2021 à 17h01

Depuis : 5.1.23

purposereplaces all filter output so far with a single item by repeatedly applying a filter run to each input title
inputall titles from previous filter runs
outputthe accumulated single item

Each input title from previous runs is passed to this run in turn. The result of each previous call to this run is made available in the next call via the variable named "accumulator". The result of the last call to this run is returned as the output. A typical use is to add up the values in a given field of each input title.

The following variables are available within the filter run:

  • accumulator - the result of the previous filter run
  • currentTiddler - the input title
  • ..currentTiddler - the value of the variable currentTiddler outside the filter run. Depuis : 5.2.0
  • index - the numeric index of the current list item (with zero being the first item in the list)
  • revIndex - the reverse numeric index of the current list item (with zero being the last item in the list)
  • length - the total length of the input list

Compare named filter run prefix :reduce with reduce Operator which is used to flatten a list of items down to a single item by repeatedly applying a subfilter.

[tag[shopping]] :reduce[get[quantity]add<accumulator>]

is equivalent to:

\define num-items() [get[quantity]add<accumulator>]

[tag[shopping]reduce<num-items>]

Examples

Reduce Filter Run Prefix (Examples)

 24 novembre 2021 à 16h07

The following examples use these data tiddlers:

[tag[shopping]] :reduce[get[quantity]add<accumulator>]

[tag[shopping]] :reduce[get[price]multiply{!!quantity}add<accumulator>]

[tag[shopping]] :reduce[<index>compare:number:gt[0]then<accumulator>addsuffix[, ]addsuffix<currentTiddler>else<currentTiddler>]
→ Uses <index> to act differently on the first item than the rest. Just for demonstration. Better to use the join Operator to accomplish this task

[tag[non-existent]] :reduce[get[price]multiply{!!quantity}add<accumulator>]
→ Empty input produces empty output

[tag[non-existent]] :reduce[get[price]multiply{!!quantity}add<accumulator>] :else[[0]]
→ Use :else to ensure output if input was empty

Unlike the reduce Operator, the :reduce prefix cannot specify an initial value for the accumulator, so its initial value will always be empty (which is treated as 0 by mathematical operators). So =1 =2 =3 :reduce[multiply<accumulator>] will produce 0, not 6. If you need to specify an initial accumulator value, use the reduce Operator.
=1 =2 =3 :reduce[multiply<accumulator>]
→ Empty initial value is treated as 0 by mathematical operators
=1 =2 =3 +[reduce<multiply-input>,[1]]
→ Setting initial value is sometimes necessary for correct results

reduce Operator

 22 mai 2021 à 17h25
purposeapply a subfilter to each input title in turn, accumulating a single value
inputa selection of titles passed as input to the filter
parameterS = a filter expression. Optional second parameter for initial value for accumulator
outputthe final result of running the subfilter S

Learn more about how to use Filters

Depuis : 5.1.23 The reduce operator runs a subfilter for each input title, passing the result of the previous subfilter run as a variable. The initial value of the accumulator can optionally be specified. It returns the result of the final subfilter run.

The reduce operator is used to flatten a list of items down to a single item by repeatedly applying a formula. A typical use is to add up the values in a given field of a list of tiddlers.

The following variables are available within the subfilter:

  • accumulator - the result of the previous subfilter run
  • currentTiddler - the input title
  • ..currentTiddler - the value of the variable currentTiddler outside the subfilter. Depuis : 5.2.0
  • index - the numeric index of the current list item (with zero being the first item in the list)
  • revIndex - the reverse numeric index of the current list item (with zero being the last item in the list)
  • length - the total length of the input list

If the reduce operator receives no input, its output will be empty. The else Operator can be useful in such cases.

Literal filter operands cannot contain square brackets but you can work around the issue by using a variable:

<$set name="sum-input" value="[add<accumulator>]">
{{{ =1 =2 =3 +[reduce<sum-input>] }}}
</$set>

Compare with the analogous named filter run prefix :reduce

\define num-items() [get[quantity]add<accumulator>]

[tag[shopping]reduce<num-items>]

is equivalent to:

[tag[shopping]] :reduce[get[quantity]add<accumulator>]

If the optional second parameter is not given, the initial accumulator value will be empty. Numerical operators treat empty input as if it was the number 0. See the multiply-input examples for how this can affect the result of reduce in some cases.

Examples

reduce Operator (Examples)

 4 décembre 2020 à 13h11

These examples use the following predefined variables:

  • add-price: [get[price]multiply{!!quantity}add<accumulator>]
  • num-items: [get[quantity]add<accumulator>]
  • join-with-commas: [<index>compare:number:gt[0]then<accumulator>addsuffix[, ]addsuffix<currentTiddler>else<currentTiddler>]
  • multiply-input: [multiply<accumulator>]

They also use the following data tiddlers:

[tag[shopping]reduce<num-items>]

[tag[shopping]reduce<add-price>]

[tag[shopping]reduce<join-with-commas>]
→ Uses <index> to act differently on the first item than the rest

[tag[non-existent]reduce<add-price>]
→ Empty input produces empty output

[tag[non-existent]reduce<add-price>else[0]]
→ Use else to ensure output if input was empty

=1 =2 =3 +[reduce<multiply-input>]
→ Empty initial value is treated as 0 by mathematical operators

=1 =2 =3 +[reduce<multiply-input>,[1]]
→ Setting initial value is sometimes necessary for correct results

Reference

 15 novembre 2014 à 21h56

Tiddlers de référence

 24 juin 2015 à 10h42

Les Tiddlers référents proposent une information sobre d'une façon compréhensible et interconnectée. Le lecteur peut être, aussi bien, un utilisateur moyen ou un expert.

Il existe plusieurs subdivisions :

Concepts
  • Définitions, dont l'ensemble forme un glossaire
Manuel utilisateur
  • Présente les détails techniques des fonctionnalités WikiTexte
  • Subdivisions : messages, opérateurs, widgets, etc
Manuel dévelopeur
  • Présente les détails techniques de l'architecture interne de TiddlyWiki

Le matériel de référence est rédigé à la troisième personne, un style formel qui évite de s'adresser au lecteur, pour se focaliser sur la façon dont se comporte TiddlyWiki lui-même. La voix passive est souvent appropriée :

  • "Le gabarit spécifié via un tiddler" plutôt que "spécifiez le gabarit via un tiddler"
  • "Le widget peut être employé à divers usages" plutôt que "vous pouvez employer le the widget à divers usages"
  • Mais "Ce widget offre plusieurs utilisation possibles" est meilleur, car moins alambiqué et plus succinct

Les double négations, les négations contractées et les expressions pouvant conduire à ignorer une négation ou à faire un contresens accidentel par omission doivent être évitées dans les tiddlers référents.

Refnotes by Mohammad

 17 novembre 2020 à 16h21

Refnotes plugin is a set of macros and stylesheets for creating abbreviations, footnotes and citations. It also makes tables of footnotes, abbreviations (glossary) and references (bibliography table).

https://kookma.github.io/TW-Refnotes/

Refnotes contains codes and elements to

Create and insert
Abbreviation
Footnote
Reference
Create tables of
Abbreviations or glossary
Footnotes and endnotes
References (bibliography) using different output style

RefreshMechanism

 14 octobre 2019 à 10h17

The refresh mechanism is the part of the WikificationMechanism concerned with updating a rendering when there are changes in the tiddler store.

The refresh mechanism is notified of changes to the tiddler store asynchronously. This is done so that multiple consecutive changes can be coalesced into a single change notification. Thus, a series of action widgets modifying several different tiddlers will only trigger a single refresh cycle.

When changes occur, the rendering is updated by calling the "refresh" method of the root widget. The refresh method determines whether the widget needs to be updated to reflect the incoming changes, and then recursively calls into the refresh methods of each child widget

The refresh cycle is inherently fairly slow because it involves visiting every node in the render tree. To maintain performance there is a RefreshThrottling mechanism that enables refresh processing to be deferred when rapid changes occur to the same tiddler.

RefreshThrottling

 17 novembre 2021 à 23h26

The RefreshMechanism allows the refresh cycle to be throttled (or deferred) when rapid changes occur to the same tiddler. It is used to maintain responsiveness while editing a draft tiddler, but can also be used on other tiddlers.

The rules governing refresh throttling are:

  • When a change notification occurs, throttling will only take place if all of the modified tiddlers meet at least one of these criteria:
    • Has the field draft.of
    • Has the field throttle.refresh
    • Has a title prefixed with $:/temp/volatile/
  • If the refresh cycle is to be throttled, a timer is set for the internal specified in $:/config/Drafts/TypingTimeout (cancelling any preciously set timer)
    • When the timer fires, the refresh cycle is triggered, passing the aggregated titles of all the deferred refresh cycles

RegExp in Tiddlywiki by Mohammad

 6 janvier 2021 à 15h10

RegExp in Tiddlywiki contains practical use cases of regular expression in Tiddlywiki.

http://tw-regexp.tiddlyspot.com/

The regular expression is a way to describe complex search patterns using sequences of characters .

RegExp in Tiddlywiki has four main parts

  • Using regular expression to match a pattern in tiddler title
  • Using regular expression to match a pattern in tiddler fields excluding tiddler text (body)
  • Using regular expression to match a pattern in tiddler body (text field)
  • Using regular expression for validation like username, password, etc.

regexp Operator

 3 février 2015 à 19h06
purposefilter the input by pattern-matched field
inputa selection of titles
suffixF = the name of a field, defaulting to title
parameterX = a regular expression
outputthose input tiddlers in which field F matches X
! outputthose input tiddlers in which field F does not match X

Learn more about how to use Filters

Regular expressions are concise strings of characters that denote patterns of text to search for. The format used in TiddlyWiki is fully defined in this Mozilla reference.

The filter syntax makes it impossible to directly specify a regular expression that contains square brackets. The solution is to store the expression in a variable. See the examples.

The parameter X can optionally start or end with a string of flags:

(?mig)

Only the i flag is generally useful: it forces the different between capital and lowercase letters to be ignored.

If X is empty, regexp will match all of the input tiddlers.

Examples

regexp Operator (Examples)

 23 janvier 2015 à 22h53

These examples make use of the Days of the Week tiddler.

[!is[system]regexp[Wiki]]
→ non-system tiddlers with Wiki in their title

[!is[system]regexp[(?i)Wiki]]
→ non-system tiddlers with Wiki in their title, ignoring case

[!is[system]regexp[Wiki(?i)]]
→ same again

[regexp[(?i)\.jpe?g$]]
→ tiddlers with titles ending in .jpg or .jpeg, ignoring case

[regexp:created[^201408]]
→ tiddlers created in August 2014

The regular expression [0-9]{2} matches two consecutive digits. Because it contains square brackets, the way to use it with the regexp operator is via a variable, as follows:

Release 5.0.0-alpha.11

 8 novembre 2013 à 17h54

This release is the culmination of a large scale refactoring of the widget mechanism of TiddlyWiki5. There are several changes to be aware of if upgrading from earlier versions:

  • The following widgets have been removed:
    • <$setstyle> - use <div style=<<macroName Param>>> instead
    • <$video> - will return in a later release
    • <$datauri> - use the <<makedatauri>> built-in macro instead
    • <$error> - may return in a later release
    • <$import> - use the BrowseWidget, DropzoneWidget and NavigatorWidget instead
    • <$info> - use the <<changecount>> built-in macro instead
    • <$version> - use the <<version>> built-in macro instead
  • The following widgets have had significant changes:
    • EditWidget
    • ListWidget - the list widget itself no longer generates HTML nodes, so you'll often need to wrap the template in a <div> or a <span> to be able to style the content
    • ViewWidget - has several changes:
      • <$view format="link"/> is no longer available; use an explicit <$link> widget instead
      • <$view format="link"/> is no longer available; use the TranscludeWidget instead
  • The following new widgets have been added:
  • Widget attribute names have been made more consistent. In particular, tiddler is used to reference a tiddler by title, not title
  • It is no longer possible to import the macro definitions within another tiddler by transcluding that tiddler
  • The body element now has the class tw-body, which will need to be specified in any overrides
    • This was done due to the new support for HTML foreign objects, which makes it possible to have multiple <body> elements in a document

Release 5.0.0-alpha.12

 8 novembre 2013 à 18h54

See GitHub for detailed change history of this release

This minor release just contains fixes for the syncer and related adaptor modules for the TiddlyWeb edition and for TiddlyWiki5's integrated server.

Release 5.0.0-alpha.13

 9 novembre 2013 à 11h22

See GitHub for detailed change history of this release

This release has several bug fixes:

  • Fixes to DaveGifford's themes blanca, blue and rocker
  • Fix an issue with the <$edit-text> widget
  • Documentation updates
  • Improved deployment scripts
  • Made the modifier field in the subtitle be a link
  • Styling improvements for the CodeMirror plugin
  • Improved the ViewWidget so that it falls back to displaying its content if the field/property is missing or empty
  • Extend use of the built-in <<tabs>> macro to the tiddler info panel, the control panel and the sidebar
    • This means that you can add new tabs by creating tiddlers with these tags, and optionally a caption field for the text of the tab:

Release 5.0.0-alpha.14

 10 novembre 2013 à 19h22

See GitHub for detailed change history of this release

This release has several bug fixes:

  • Improved the layout of the control panel
  • Fixed problem with using the CheckboxWidget to apply tags to tiddlers that don't have any existing tags
  • Fixed problem with default password for the PasswordWidget being the string "null"

Release 5.0.0-alpha.15

 12 novembre 2013 à 20h50

See GitHub for detailed change history of this release

New Features

  • Added a dropdown to the edit template for setting the tiddler type
  • A saver module for Microsoft Internet Explorer version 10 and above. Clicking save in the sidebar causes the browser to pull up a bar at the bottom of the window where you can click save. You then get a new copy of your wiki in the downloads folder.
  • Support for new tw-close-other-tiddlers message (eg, )
  • For http://five.tiddlywiki.com, add a tiddler info tab with a link to the static representation of the tiddler
  • Make more UI elements extensible via system tags:

Improvements

  • Rename the <$setvariable> to <$set>
    • <$setvariable> will temporarily remain as a synonym for <$set> for the next few releases
  • Improve the popup mechanism so that the tiddler info panel doesn't close so easily
  • Various improvements for working with TiddlyWeb, including:
    • Updated control panel

Bug fixes

  • Fixed bug when creating a tiddler title starting or ending with a space
  • Fixed behaviour of tags editor dropdown when search box is empty
  • Fixed problem with interpretation of fields and index attributes of the TranscludeWidget
  • Fixed the module type names in the internal tab of the control panel
  • Improved styling for embedded PDFs
  • Fixed bug with second being omitted from serialised date formats

Contributors to this release include @jermolene and @grayeul.

Release 5.0.0-alpha.16

 30 novembre 2013 à 9h55

See GitHub for detailed change history of this release

New Features and Improvements

  • Improved appearance of tags editor
  • Improved generation of qualified tiddler titles for state storage
    • Instead of $:/state/tab/sidebar-{$:/core/ui/SideBar|$:/core/ui/SideBar||}{$:/core/ui/PageTemplate|$:/core/ui/PageTemplate||} one gets $:/state/tab/sidebar-{1743827719}
  • Significant updates to the structure and content of the user documentation
  • Added a new plugin for displaying corner ribbons; currently used for a version banner on tw5.com
  • Split Snow White theme into a base Vanilla theme with all the basic formatting, leaving the decorative bits to Snow White
    • Existing TiddlyWikiFolders will need updating to include Vanilla as an additional theme
  • The page building blocks are now driven by the system tag $:/tags/PageTemplate
  • Fixed problem that prevented tag configured items from shadow tiddlers interleaving with items from ordinary tiddlers
  • Refactored control panel to add Saving tab that includes TiddlySpot options
  • Improved notifications when saving to TiddlySpot
  • Added backup URL to TiddlySpot control panel tab
  • Extended the ServerCommand to add primitive support for basic authentication when running under Node.js

Bug fixes

  • Fixed problem with displaying tiddler titles that contain WikiText syntax
  • No longer crashes when encountering an error in a filter string
  • Fixed a crash when dragging and dropping tiddlers within TiddlyWiki5
  • No longer update the modified date for imported tiddlers
  • Automatically forces new field names to be lower case

Internal changes

  • Added Windows-compatible build scripts
  • Changes to the SavingMechanism to allow the tiddlers that are saved to be selected
  • The main HTML file template used for saving TiddlyWiki5 documents has changed from $:/core/templates/tiddlywiki5.template.html to $:/core/save/all
  • Moved tw5.com's Google Analytics integration into a proper plugin

Contributors to this release include @jermolene, @asampal and @pmario.

Release 5.0.0-alpha.17

 30 novembre 2013 à 15h16

See GitHub for detailed change history of this release

Bug fixes

  • Fixes a small but important bug that prevented downloading an empty wiki with alpha.16

Release 5.0.1-alpha

 6 décembre 2013 à 16h13

See GitHub for detailed change history of this release

Improvements

  • Changes to the importing process to enable a smoother Upgrading process
    • Ignores attempts to import plugins that are older than currently installed plugins
    • System tiddlers are now imported as usual
  • If $:/theme isn't defined or refers to a missing tiddler, then fallback through Snow White to Vanilla. This means that empty.html now defaults to Snow White
  • Added support for Block Quotes in WikiText

Bug fixes

  • Fixed bug that was preventing $:/tags/PageControls tiddlers from being reordered

Internal changes

Release 5.0.10-beta

 18 janvier 2015 à 18h24

See GitHub for detailed change history of this release

Highlights

Documentation Improvements

Usability Improvements

  • Refactor sorting to respect accented characters
  • Support embedded images in Markdown tiddlers
  • Refactored sidebar hiding action so that the story river border is maintained

Hackability Improvements

  • Added [is[tag]] to the is operator
  • Hide the top bars in the print stylesheet

Bug Fixes

  • Added support for saving changes on Windows network drives
  • Refactored configuration processing so that ordinary tiddlers are processed after shadow tiddlers. This resolves an issue whereby user stylesheets were being overridden by shadow stylesheets
  • Fixed issue with offline snapshot of server edition erroneously including shadow tiddlers
  • Fixed problem with corrupted upgrades from 5.0.x-prerelease to 5.0.x-beta
  • Fixed bug with [untagged[]] filter operator
  • Fixed incorrect background colour for tag pills in the sidebar
  • Fixed issues with null fields under TiddlyWeb
  • Fixed problem with hamburger overlapping scrollbars

Release 5.0.11-beta

 21 février 2015 à 22h57

See GitHub for detailed change history of this release

Incompatible Changes

See Notes for upgrading to 5.0.11-beta for more details of these changes:

  • The default output location for command line operations has changed to the /output folder within TiddlyWikiFolders (it used to be current directory)
  • Note that the shadow tiddler $:/core/ui/PageMacros has changed with this release. If you've made modifications to it you should copy your modifications to a new tiddler, delete $:/core/ui/PageMacros, perform the upgrade and then manually update the new copy of $:/core/ui/PageMacros

Documentation Improvements

Usability Improvements

  • Many performance optimisations, particularly for filter operations
  • Added support for PermaLinks and browser back and forward buttons
  • Added support for WikiLinks in Markdown via [link text](#TiddlerTitle)
  • Added support for explicit external Linking in WikiText (eg [ext[tooltip|url]])
  • Replaced hamburger menu icon with double chevron icon
  • Enhance plain text parsing to use the CodeBlockWidget, and hence use syntax highlighting if the plugin is installed. This gives us syntax highlighting for JavaScript shadow tiddlers, amongst other things
  • Improvements to the German, French, Italian, Japanese and Chinese translations
  • Removed WikiText tiddlers from the sidebar "Types" tab
  • Added various warnings when editing shadow tiddlers
  • Allow digits in field names
  • Added warning banner and when attempting to edit binary tiddlers
  • Added automatic refreshing of the browser window title from $:/core/wiki/title

Hackability Improvements

Bug Fixes

  • Fixed issue with hovering of the topbar icons in Firefox
  • Fixed problem with dragging and dropping within a text edit control

Contributors

I (@Jermolene) would like to thank the contributors to this release who have generously given their time to helping improve TiddlyWiki:

@BramChen, @mwfogleman, @nameanyone, @natecain, @pekopeko1, @pmario, @sukima, @xcazin.

Release 5.0.12-beta

 17 mai 2014 à 2h02

See GitHub for detailed change history of this release

This is an emergency release that fixes a single significant bug with shadow tiddler handling in 5.0.11. See the discussion thread for more details.

Release 5.0.13-beta

 18 janvier 2015 à 18h25

See GitHub for detailed change history of this release

Accessibility Improvements

This release includes a number of features designed to improve the experience of TiddlyWiki with a screen reader. Particular thanks to @domasofan for his feedback

  • Added label and title for show/hide sidebar buttons
  • Added label and title for advanced search link
  • Added label and title for close buttons in "Open" sidebar tab
  • Added aria-label support to the LinkWidget
  • Switched to H1 tags for the page title and H2 tags for tiddler titles
  • Added label and title for tiddler and page toolbar buttons

Usability Improvements

Hackability Improvements

Bug Fixes

  • Fixed here and here the problem with state tiddlers being inadvertently saved
  • Fixed bug with TextWidget not refreshing correctly
  • Fixed problem with vertical tabs in Safari
  • Fixed issue with images in Markdown

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.0.14-beta

 21 février 2015 à 22h57

See GitHub for detailed change history of this release

Major Changes

Improved Control Panel Plugins Tab

The Plugins tab of the control panel has been improved with the addition of documentation tabs that plugins can use to show documentation. There is also a larger draggable area for dragging tiddlers across to other wikis.

Configurable Button Toolbars

The page toolbar and the tiddler toolbars can now be configured with several new buttons - see the control panel under the Appearance and Toolbars tabs.

The sidebar tools tab now shows all the available page controls, allowing them to be invoked or checked to appear in the toolbar. The tiddler info area now includes a tools tab that includes buttons for all the tiddler actions.

Upgrade Mechanism

There are two components:

Improvements to CamelCase Recognition

TiddlyWiki now takes a much more conservative approach to recognising CamelCase terms that should be automatically linked. Previously, the dash and underscore were treated as lower case letters, leading to a number of false positives. See the GitHub bug #337 for details.

Automatic Permalinking Off by Default

With previous beta releases of TiddlyWiki the browser address bar is automatically updated so that it dynamically reflects the tiddlers that are currently open. This makes it easier to get a permalink for copying and pasting elsewhere, but it leads to much confusion for casual users who don't always understand why unexpected tiddlers are being displayed after they have refreshed the page in the browser.

For 5.0.14-beta, the setting has been changed. Visit control panel Advanced/Settings to switch the setting back to "Include the target tiddler and the current story sequence".

Usability Improvements

  • Added previews to the icon dropdown in the tag manager
  • Added an indication of unsaved changes by changing the colour of the save changes button
  • Split the wikitext emphasis parsers into separate modules so that they can be independently controlled with the \rules pragma
  • Refactored (and here) ReleaseHistory to place the releases into vertical tabs
  • Stopped saving $:/HistoryList, thus avoiding it uncontrollably increasing in size
  • Improved (and here) print stylesheet to remove page background
  • Updated display of plugin tiddlers so that their constituent tiddlers are shown, rather than the raw JSON
  • Moved the functionality of the fullscreen plugin into the core

Hackability Improvements

  • Extended TiddlerWidget to add a CSS class corresponding to each tag present on displayed tiddlers
  • Added support for hiding specified fields in the tiddler editor
  • Added support for variable operands in filters (see Filter Parameter)
  • Added support for widget messages tw-permalink and tw-permaview
  • Added browser sniffing plugin so that tiddlywiki.com can present the correct browser-specific documentation
  • Added a configuration option for specifying the default location for saving new tiddlers in the client-server configuration
  • Added support for the InfoMechanism
  • Extended CheckboxWidget to allow it to toggle fields as well as tags
  • Refactored control panel theme tweaks to be stored in individual tiddlers
  • Extend the tabs macro to allow tabs to be templated
  • Added (and here) SystemTags support for inserting content above and below the story river
  • Added support for transcluding plugin subtiddlers with the TranscludeWidget
  • Added (and here) support for importing from *.htm and *.hta files as well as the existing support for *.html files
  • Extended the "sticky titles" theme so that it works when tiddlers are in edit mode

Bug Fixes

  • Fixed bug with execution order of BuildCommand targets
  • Fixed bug with missing hover colours for external links
  • Fixed problem with refreshing modal dialogues
  • Fixed issue with cookies disabled on Firefox
  • Relax the requirement for a newline immediately the closing \end of a macro definition

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.0.15-beta

 21 février 2015 à 19h40

See GitHub for detailed change history of this release

Usability Improvements

Hackability Improvements

Bug Fixes

  • Fixed problem with building TiddlyWiki under Windows
  • Fixed unclickable download ink in upgrade wizard
  • Fixed missing language flag in empty.html
  • Fixed problem with switching the type of a tiddler between the bitmap and text editor
  • Fixed foreground colour for tag pills in the sidebar
  • Fixed problem with github source links for tiddlywiki.com not working for titles containing colons

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.0.16-beta

 21 février 2015 à 19h41

See GitHub for detailed change history of this release

Incompatible Changes

5.0.16-beta brings more incompatible changes than any previous release. These changes are likely to break almost all plugins written for previous releases of TiddlyWiki 5, and will break many customisations.

  • Changed all CSS class prefixes from tw- to tc- (eg tw-tiddler-frame has become tc-tiddler-frame; missing prefixes have also been added, so btn-invisible has become tc-btn-invisible)
  • Changed all message prefixes from tw- to tm- (eg tw-close-tiddler has become tm-close-tiddler)
  • Changed all variable prefixes from tw- to tv- (eg tw-config-toolbar-icons has become tv-config-toolbar-icons)
  • Changed prefix/removeprefix filter operators to be case-sensitive

Compatibility with TiddlyWikiClassic

This release includes a preliminary version of a new plugin that provides compatibility with content created for TiddlyWikiClassic:

https://tiddlywiki.com/classicparserdemo.html

Subsequent releases will include end-user documentation with step-by-step instructions for migrating content.

Many thanks to @buggyj for his work on this plugin.

Usability Improvements

Hackability Improvements

Bug Fixes

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.0.17-beta

 21 février 2015 à 22h52

See GitHub for detailed change history of this release

Highlights

This release includes major improvements from @giffmex to the welcome and tutorial documentation, and new development docs incorporating the work of @cheigele and @cjrk.

Incompatible Changes

Change System Tag $:/tags/stylesheet with $:/tags/Stylesheet

The issue is that the capitalisation of $:/tags/stylesheet is not consistent with other system tags. This release adds support for $:/tags/Stylesheet, and adds a deprecation warning if $:/tags/stylesheet is used. Support for $:/tags/stylesheet will be removed before the beta.

  • Added support for $:/tags/Stylesheet and a deprecation warning when $:/tags/stylesheet is used

Change ButtonWidget title attribute to tooltip

The use of the title attribute in the ButtonWidget was not consistent with the tooltip attribute used by the ImageWidget and LinkWidget. This release adds support for the tooltip attribute to the ButtonWidget alongside the existing support for the title attribute, but with a deprecation warning.

Removing Support for RegExp Filter Operands

As discussed in the associated ticket, the support for regular expression filter operands is incomplete and inconsistent. The plan is to remove support for this feature in the next release. A new filter operator has been provided to replace it, along with the addition of a deprecation warning that is displayed whenever regular expression filter operators are used.

  • Added new regexp operator
  • Added deprecation warning for regular expression filter operators

Repository Reorganisation

The goal is to make the TiddlyWiki repository easier to comprehend for newcomers.

  • Moved scripts into a separate bin folder

Usability Improvements

Hackability Improvements

Bug Fixes

  • Fixed problem with draft tiddlers not counting as dirty
  • Fixed problem with keyboard shortcuts introduced in 5.0.16-beta
  • Fixed problem with stylesheets being parsed in inline mode
  • Fixed bug with selective expandable Table-of-Contents Macros

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.0.18-beta

 21 février 2015 à 23h01

See GitHub for detailed change history of this release

This is a minor release prior to the full release of TiddlyWiki on September 20th. The documentation has been cleaned up and improved (with more improvements to come).

File Layout of tiddlywiki.com

The layout of files on tiddlywiki.com has been adjusted to make it more logical. See the ticket for a discussion. You can see the source files that make up tiddlywiki.com at https://github.com/Jermolene/jermolene.github.com

Hackability Improvements

  • Added first iteration of a list-links macro (further improvements are planned)
  • Added support for importing .markdown and .md files
  • Extended timeline macro to support a subfilter

Bug Fixes

  • Fixed problem with digits being classified as lower case letters for wiki link matching
  • Fixed crash when sorting missing tiddlers by fields other than title
  • Fixed problem with handling .jpeg file extensions
  • Fixed problem with RadioWidget and missing tiddlers
  • Fixed problem with dragging a partially selected link

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.0.2-beta

 15 décembre 2013 à 14h24

See GitHub for detailed change history of this release

Improvements

Bug fixes

  • Fixed problem deleting tiddlers under the filesystemadaptor
  • Fixed problem with transcluding fields containing lists or dates (eg, {{!!tags}})
  • Fixed problem with re-ordering page control tiddlers (ie tiddlers tagged $:/tags/PageControls)
  • Update template used for deploying to TiddlyWeb
  • Fixed problem with tiddler deletions via the file system adaptor

Internal changes

Release 5.0.3-beta

 15 décembre 2013 à 17h00

See GitHub for detailed change history of this release

This release includes minor bug fixes and documentation updates.

Release 5.0.4-beta

 21 décembre 2013 à 20h55

See GitHub for detailed change history of this release

Improvements

  • Switched to using an HTML5 placeholder for the default text of a new tiddler
  • Refactored stylesheet handling so that theme tweaks are now applied immediately, and some ordering issues have been resolved
  • Several improvements for running TiddlyWiki on Node.js:
    • The tiddlywiki.info file in the root of wiki folder file is now optional, falling back to a default configuration suitable for serverside use (commit)
    • The file system plugin now automatically creates the tiddlers subfolder in the wiki folder
  • Added favicon.ico support
  • Added SaveTiddlerCommand

Bug Fixes

  • Fixed problem with tiddlers sometimes wrongly opening at the top of the story (commit)
  • Fixed problem with refreshing RadioWidget
  • Fixed problem with the dragger image being visible in some circumstances
  • Fixed drag and drop support on InternetExplorer, contributed by DavidJade (@davidjade on GitHub)
  • Fixed crash on modifying page template (commit)
  • Updated fullscreen plugin to latest version of the API (commit)
  • Improved handling of double square brackets within tags (thanks to StephanHradek)

This release includes minor bug fixes and documentation updates.

Release 5.0.5-beta

 24 décembre 2013 à 14h20

See GitHub for detailed change history of this release

Improvements

Bug Fixes

  • Fixed problem with modal wizard positioning on narrow screens
  • Fix problem with static content being included in empty.html when downloaded from the full wiki
  • Improved performance of tiddler import with large tiddlers on Firefox

Release 5.0.6-beta

 3 janvier 2014 à 16h49

See GitHub for detailed change history of this release

Improvements

Bug Fixes

  • Fixed import browse button
  • Fixed crash when attempting full screen mode on browsers that don't support it
  • Fixed requirement for a newline immediately after a horizontal rule, table or typed block (thanks to StephanHradek)
  • Fixed problem with placeholder attibute on InternetExplorer (thanks to DavidJade)

Release 5.0.7-beta

 25 janvier 2014 à 19h10

See GitHub for detailed change history of this release

Incompatible Changes

These are changes that might affect users upgrading from previous betas.

Documentation updates

Improvements

Bug Fixes

  • Fixed problem with default format of ViewWidget substituting seconds for minutes in displayed times
  • Fixed problem that was causing several animations to fail in Safari
  • Fixed problem with unclickable sidebar under the Centralised theme
  • Fixed problem with non-system tiddlers showing up in system tiddler advanced search
  • Fixed problem with notifications not always disappearing in Firefox
  • Fixed problem with wiki folders including wiki files with tiddlers that do not have a title
  • Fixed problem with ServerCommand logging "Serving on undefined:8080"

Release 5.0.8-beta

 28 février 2014 à 15h49

See GitHub for detailed change history of this release

Incompatible Changes

See Notes for upgrading to 5.0.8-beta for more details of these changes:

Documentation Improvements

Usability Improvements

  • Added automatic saving on editing a tiddler and a warning when attempting to close the window with unsaved changes
  • Added confirmation dialogue when deleting tiddlers
  • Add support for switchable (and editable) ColourPalettes
  • Added TranslationMechanism and translations for:
    • Deutsch (Österreich and Deutschland) by @pmario
    • Français (France) by @xcazin
    • Chinese (Simplified and Traditional) by @BramChen
  • Add error alerts when syncing to a server
  • Rejigged $:/ControlPanel to use nested tabs
  • Added $:/TagManager for easy management of tags
  • Added experimental KeyboardWidget, including support for ctrl-enter (or cmd-enter) to finish editing a tiddler
  • Added number of tags to control panel Basics tab
  • Enhanced link handling so that control/command clicking a link opens the target tiddler without navigating to it
  • Importing tiddlers via drag and drop no longer opens all the tiddlers

Scalability Improvements

Hackability Improvements

Bug Fixes

  • Fixed problem with pasting items into the browser
  • Fixed problem with colour pickers not showing correct colour in Chrome
  • Fixed problem with tag pills not working inside table cells
  • Fixed problem in client server configuration with % in tiddler titles
  • Fixed problem with not using placeholder text when editing missing tiddlers
  • Fixed problem with test data in certain time zones
  • Fixed problem with non-breaking space characters being converted into '@' symbols
  • Fixed problem with highlighting plugin only working in the browser
  • Fixed crash when wiki/themes folder contains files that are not themes

Release 5.0.9-beta

 2 mars 2014 à 18h09

See GitHub for detailed change history of this release

Highlights

Documentation Improvements

Usability Improvements

  • Made the dropdown arrow icon skinnier
  • Added validation of legal characters for fieldnames
  • Added blacklisting of unsafe HTML elements and attributes
  • Added a warning indicator to tiddlers in TiddlyWikiClassic format
  • Add tiddler info Advanced panel with information about plugins and shadow tiddlers
  • Improved layout of $:/ControlPanel Plugins tab
  • Enhance viewing of system tiddlers by fading down the $:/ prefix
  • Extend $:/TagManager to allow icons to be assigned to tags
  • Added support for list-before and list-after fields for controlling tag ordering (see TiddlerTags for details)
  • Added request for confirmation before abandoning edits to a tiddler

Hackability Improvements

Bug Fixes

  • Fixed problem with occasional freezes of the sync mechanism - thanks to buggyj
  • Fixed problem with tiddlers or fields called __proto__
  • Fixed with refreshing the D3 plugin
  • Fixed problem with "null" message when unloading under Internet Explorer 11

Release 5.1.0

 20 septembre 2014 à 13h40

See GitHub for detailed change history of this release

This is the first full release of TiddlyWiki. Documentation updates made up the bulk of the changes since the previous 5.0.18-beta release.

Hackability Improvements

  • Removed curly braces from qualified identifiers

Bug Fixes

  • Fixed problem with Markdown Maruku mode metadata

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.1.1

 21 septembre 2014 à 13h40

See GitHub for detailed change history of this release

This is a minor bug fix release to improve the documentation and correct some issues with the first full release of TiddlyWiki.

Incompatible Changes

Certain features that were deprecated in Release 5.0.17-beta have now been removed:

Note that the next release will also remove support for regular expression filter operands, which was also deprecated in 5.0.17-beta.

Hackability Improvements

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.1.10

 7 janvier 2016 à 23h16

See GitHub for detailed change history of this release

Major Improvements

Performance Optimisations

This release includes several low-level performance optimisations that should improve speed and responsiveness in many common operations.

There is a new setting in the control panel to enable performance instrumentation, making it much easier to measure and improve performance issues.

New Editions

Three new editions of TiddlyWiki are included in this release. These can be used as starting points for creating your own wiki for several purposes:

  • The Résumé Builder Edition by @inmysocks is a custom edition to guide you through the process of using TiddlyWiki to create a good looking résumé (or curriculum vitæ)
  • The Blog Edition provides tools for using TiddlyWiki under Node.js to create a static HTML blog that can be published on GitHub pages (or similar)
  • The Text-Slicer Edition is a custom edition with tools to help advanced users slice longer texts up into individual tiddlers.

External Text Tiddlers

Limited support for tiddlers stored in external .tid files:

  • standalone TiddlyWiki HTML files with external text tiddlers can be built under Node.js
  • wikis with external text tiddlers can be worked with in the browser, automatically lazily loading the content of external text tiddlers when it is first referenced
    • saving changes in the browser doesn't work as expected: if edited, the external text tiddler is replaced with an ordinary tiddler
    • lazy loading of external text tiddlers doesn't work in Chrome when viewing the TiddlyWiki HTML file on a file: URI; it works OK in Firefox
    • lazy loading works on an HTTP URI on all browsers as long as the target file is either stored on the same domain or is served by a server that supports CORS

See Alice in Wonderland for an example. Try opening it without a network connection.

New "Tight" Theme

A new theme called "Tight" uses reduced padding, margins and font-sizes to pack as much text as possible:

Other Improvements

Translation Improvements

  • Added Swedish translation by @Superdos
  • Added Korean (Korean Republic) translation by @araname
  • Improved Catalan, Chinese, Danish, Dutch, French, German, Italian, Russian and Spanish translations

Usability Improvements

  • Enhanced the tiddler editor to accept new fields and tags when clicking confirm, without having to click "Add tag" or "Add field"
  • Added new fold and fold others buttons to the tiddler toolbar to temporarily hide the body of a tiddler, and also added new fold all and unfold all page buttons
  • Added ability to disable individual WikiText parser rules (see the Advanced tab of $:/ControlPanel). Also added a simple setting for disabling automatic linking of CamelCase words
  • Extended support for automatically linked system tiddler titles to include digits and underscore
  • Added warning when trying to use plugins designed for TiddlyWiki Classic
  • Upgraded to version v8.8.0 of highlight.js for the Highlight Plugin
  • Removed the need to manually confirm deleting alerts
  • Added optional tooltips to tabs Macro

Hackability Improvements

Bug Fixes

  • Fixed problem introduced in 5.1.9 with processing tiddlywiki.info files
  • Fixed problem with invisible icons in $:/AdvancedSearch
  • Improved check for required plugins in ServerCommand
  • Fixed problem with queueing change events for deleting non-existent tiddlers
  • Ensure EditTextWidget fixes height even if refresh isn't required
  • Fixed the gradient on the sidebar tabs divider
  • Fixed problem with tiddler titles such as $:/templates/something being erroneously classed as $:/temp tiddlers, and so excluded from syncing
  • Switched to absolute date format in tiddler subtitles

Node.js Improvements

  • Fixed problem with the filesystem adaptor saving new image files as base64-encoded .tid files instead of as native binary files with an accompanying .meta file
  • Extended tiddlywiki.files support in TiddlyWikiFolders to allow directories to be loaded recursively, as well as individual files

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.1.11

 30 janvier 2016 à 12h41

See GitHub for detailed change history of this release

This is a bug-fix release for Release 5.1.10 that fixes a serious issue affecting the operation of the official plugin library.

Release 5.1.12

 13 juillet 2016 à 11h47

See GitHub for detailed change history of this release

Major Improvements

New Editor Toolbars

Added support for extensible formatting toolbars for the editor widgets.

  • Formatting operations for WikiText, with support for Markdown:
    • Character formatting operations for bold, italic, strikethrough, underline, superscript, subscript, inline monospace
    • Line formatting operations for monospaced blocks, quoting, headings and both numbered and bulleted lists
    • Insert picture from a dropdown chooser
    • Stamp snippet of pre-programmed text
    • Excise selected text into a new tiddler
    • Optional automatic resizing to fit content
  • Full keyboard shortcut editor in control panel. Shortcuts are also shown in the toolbar button tooltips

Improved Bitmap Editor

The bitmap editor has been enhanced with a toolbar supporting:

  • Painting with selectable colour, width and opacity
  • Clearing the image
  • Resizing the image
  • Keeping track of recently chosen colours

Improved Plugins

Several of the official plugins available in the plugin library have been updated for this release. Upgrading will automatically update any installed plugins.

  • The KaTeX plugin has been updated to version v0.60.0
  • The CodeMirror plugin has been updated to version 5.13.2, and integrated with the new editor toolbars. The default configuration has been updated to include syntax highlighting for HTML, JavaScript, CSS, XML, TiddlyWiki Classic and Markdown.
  • The Markdown plugin includes formatting toolbar buttons and a new "new markdown tiddler" button in the Tools tab of the sidebar.
  • The experimental Evernote plugin allows notes and images from .enex files to be imported into TiddlyWiki.
  • The new Internals plugin provides features to help understand the internal operation of TiddlyWiki, including new preview modes in the editor showing both the parse and widget trees of the current tiddler
  • Improved language translations:
    • Korean
    • Chinese (Simplified) and Chinese (Traditional)
    • German
    • French
    • Danish
    • Dutch

Text-Slicer Plugin Improvements

  • Added support for sticky notes within documents
  • Extended support for slicing documents to Node.js
  • Improved document metadata display
  • Added list-children filter operator
  • Fixed bugs

Other Improvements

Usability Improvements

  • Added a setting for disabling linking to missing tiddlers
  • Added a setting for forcing word wrapping in monospaced code blocks
  • Added a warning when creating or editing tiddler titles containing troublesome characters
  • Addition of “new image” button to the “Tools” tab of the sidebar
  • Introduction of new general purpose colour-picker Macro
  • Introduction of new general purpose image-picker Macro
  • Added a bulk delete button to advanced search "Filter" tab

Hackability Improvements

Bug Fixes

Node.js Improvements

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.1.13

 25 juillet 2016 à 9h48

See GitHub for detailed change history of this release

This is a minor bug fix release.

Bug Fixes

Node.js Bug Fixes

  • Fixed problem with extraneous .tid extension added to tiddler filenames

Other Improvements

  • Updated Portuguese (Portugal) translation

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.1.14

 26 avril 2017 à 17h00

See GitHub for detailed change history of this release

New and Improved Plugins

Improved Support for Drag and Drop

There are several improvements to Drag and Drop:

  • Ability to rearrange the "Open" sidebar panel and the tag dropdown (and new tiddlers can be opened by dragging them to the list)
  • Ability to reorder entries in tag dropdowns
  • Dragging a tag pill is now equivalent to dragging all of the tagged tiddlers together
  • Entries in the control panel "Appearance"/"Toolbars" tab can be reordered by drag and drop
  • The image shown while dragging now reflects the dragged item, instead of being a generic drag pill

New "Heavier" Theme

A new theme called "Heavier" thickens TiddlyWiki's default lightweight fonts. A variant "Tight-Heavier" combines the "Heavier" theme with the existing "Tight" theme:

New Tiddler Manager

Added new tiddler manager to support tasks such as:

  • Reviewing and applying tags to a large number of tiddlers
  • Tweaking the custom colours and icons for a large number of tiddlers

The tiddler manager will be extended in the future to increase flexibility and to add support for bulk operations.

Performance Improvements

  • Extended search mechanism to require the search string to be a minimum length

Translation Improvements

  • Improvements to Danish, Dutch, French, German, Portuguese and Chinese translations
  • Added new Hebrew translation
  • Added preliminary support for right-to-left (RTL) languages

Usability Improvements

  • Added a select all/none checkbox to the header of the import panel
  • Added "close plugin library" button
  • Added support for adding tags using the enter key
  • Improved handling of ctrl-Enter to add partially completed tags and fields
  • Added support for relinking references to renamed tiddlers
  • Added new "print page" page control button (and added associated icon)
  • Added new page control button to temporarily suspend timestamps
  • Improved access to plugin information:
    • Refactored the display of plugin tiddlers to use the same format as the control panel, adding the shadow tiddler listing as an overridable extension tab
    • Added a new tab in the “More” sidebar providing quick access to all installed plugins
  • Fixed height of preview pane to use a scrollbar when fixed height layout is selected
  • Extended editor "link" button to create external links and missing links
  • Increased size of icons in the "Filter" tab of $:/AdvancedSearch
  • Fixed problem with multiple copies of a tiddler appearing in the story river
  • Improved dropdown for new field names with typeahead search
  • Improved the ordering of groups in the tiddler editor content type dropdown
  • Added "sticky" mode for tiddler info panel. See "Settings" in control panel
  • Increased boldness of tag pill text
  • Added documentation marker to indicate the version in which a new feature was released
  • Added an entry to the advanced search filter drop down for exporting the current story (minus advanced search)

New and Improved Filter Operators

Hackability Improvements

Node.js Improvements

Bug Fixes

  • Improved Node.js support for the HighlightPlugin
  • Fixed problem with recursion errors in the Table-of-Contents Macros
  • Prevented email addresses from being mis-recognised as HTML tags
  • Fixed issue with $tw.utils.strEndsWith()
  • Partially fixed problem with action widgets being invoked independently of refresh cycle
  • Revised handling of syncAdaptor.isReady() method to improve compatibility with older adaptors
  • Fixed problem with unsafe use of String.prototype.replace(), corrupting fields containing dollar signs
  • Fixed problem with page background colour not showing through transparent background images
  • Fixed sync problem with skinny tiddlers not being loaded
  • Fixed problem with "Cancel" button in login dialogue also submitting the form
  • Fixed typo affecting created/creator fields when deleting a field
  • Fixed issue with system links containing international characters not being recognised
  • Fixed issue with single line macro definitions without a terminating line break
  • Fixed issue with empty strings and the CheckboxWidget
  • Fixed problem with calculation of week numbers
  • Fixed problem with move Operator not wrapping correctly
  • Fixed problem preventing customisation of textarea background colours

Developer Bug Fixes and Improvements

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.1.15

 13 novembre 2017 à 16h11

See GitHub for detailed change history of this release

New and Improved Plugins

Translation Improvements

New and improved translations:

  • New Persian translation
  • Updated Chinese and Greek translations

Another improvement that benefits users of translations is the addition of about 800 new transliteration pairs. These are substitutions that are performed when converting a tiddler title into a filename, such as the two characters "oe" for the single character "œ". See the commit for more details. The result is that automatically generated filenames are much more readable.

Usability Improvements

Hackability Improvements

Node.js Improvements

Bug Fixes

  • Fixed problem with "new journal" button clearing the text field
  • Removed extraneous URI encoding of filename with PUT saver
  • Restored ability to use sub-filter with image-picker macro
  • Fixed problem with the download saver and filenames containing spaces, accents or other characters that need URL encoding
  • Fixed problem with importing JSON tiddlers with leading or trailing spaces in the title
  • Fixed plugin display so that "contents" tab is shown even if no other tabs are provided
  • Fixed problem with allbefore:include filter operator
  • Updated Update Stanford JavaScript Library to version 1.0.7

Developer Bug Fixes and Improvements

  • Extended $tw.boot.boot() to add a callback parameter
  • Extended navigation handling to pass original event data
  • Added new th-importing-files hook

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.1.16

 25 avril 2018 à 16h56

See GitHub for detailed change history of this release

Improved CodeMirror Plugins

The CodeMirror plugin has undergone a substantial rewrite, with many new improvements:

  • Upgrade to CodeMirror version v5.37.0
  • Now modularised into:
    • Base plugin: basic lightweight configuration, approximately 240KB
    • Add-on plugins:
      • Search and Replace
      • Auto-completion
      • Fullscreen editing
      • Auto-close brackets
      • Auto-close tags
      • SublimeText keymap
      • Emacs keymap
      • Vim keymap
      • Highlighting modes: Javascript, Xml, Html (htmlmixed), Html (htmlembedded), Css, Markdown, X-Tiddlywiki
  • Automatic configuration (the configuration tiddler is not needed anymore)
      • CodeMirror (engine.js) builds the configuration using information within the installed CodeMirror plugins
  • New control panel configuration tab:
    • Line numbers
    • Theme:
      • Editor font family (same as native TiddlyWiki)
      • Cursor settings
      • Line wrapping
    • Active line highlighting
      • Autocompletion on/off (if installed)
    • Keymap

Other New and Improved Plugins

Translation Improvements

New and improved translations:

  • New Slovenian translation
  • New Português (Brasil) translation
  • Improved Dutch translation
  • Improved French translation
  • Improved German translation
  • Improved Traditional and Simplified Chinese translations
    • These translations now also reset the minimum search length to one character

Privacy Improvements

Prompted by the General Data Protection Regulation (GDPR), we've removed all third party cookies from tiddlywiki.com.

Usability Improvements

  • Added new DiffTextWidget, and integrated it into the import listing and as a preview pane
  • Added selectable previews to the import listing
  • Added new editor toolbar buttons for wrapping the selection with double square and curly brackets
  • Added new sortan Operator for sorting alphanumeric values such as "Apple 6", "Apple 7", "Apple 8", "Apple 9", "Apple 10", "Apple 20", "Apple 30", "Apple 100"
  • Improved default fonts for readability as advised by GitHub
  • Added an editor toolbar button for stamping fragments of formulae for the KaTeX Plugin
  • Simplified the page scrolling behaviour: navigating to a tiddler now scrolls the top of the tiddler to the top of the viewport
  • Added WidgetMessage: tm-copy-to-clipboard and also copy-to-clipboard Macro for copying text directly to the clipboard
  • Added a hint to the field list dropdown
  • Added a control panel setting for the default tab in the More sidebar
  • Added a control panel setting for the titles of new tiddlers
  • Added "rotate left" button to bitmap editor toolbar
  • Improved criteria under which certain editor toolbar buttons are displayed
  • Added support for a minimum length for the new tag field before the dropdown is shown
  • Improved consistency and reusability of the palette, language and theme switchers
  • Added support for retaining tab content in the tabs Macro
  • Added support for adding links via the enter key

Hackability Improvements

Bug Fixes

  • Removed superfluous list item at the end of list-links-draggable macro
  • Fixed problem with the content area of vertical tabs sometimes overflowing their right hand margin
  • Fixed problem with double quotes within the new journal template
  • Fixed problem with dragging inside a textarea
  • Fixed usage of "default" attribute of SelectWidget when "index" attribute is used
  • Fixed problem with crash when dragging over TiddlyWiki on some browsers
  • Fixed issue with new journal button
  • Fixed problem with filter and value attributes of SetWidget
  • Fixed problem with numeric operands in the Extended Listops Filters
  • Fixed problem with "put" saver and 412 return codes
  • Fixed problem with variable references in field values in the edit template
  • Extended behaviour of list-after field so that the tiddler is placed at the end of the list if the list-after field is present but empty

Developer Bug Fixes and Improvements

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.1.17

 12 mai 2018 à 11h43

See GitHub for detailed change history of this release

Reversions

After encountering significant problems we've reluctantly decided to remove support for multiple sub-operators with the is Operator that was added in v5.1.16.

Usability Improvements

  • Improved appearance of TiddlyWiki's "red screen of embarrassment"

Bug Fixes

  • Fixed problem with extraneous space in new journal titles
  • Fixed problem with repeated use of "new journal" with text set
  • Fixed (and here) problem with Etag handling
  • Fixed problem with is Operator introduced in 5.1.16
  • Restored default of the preview pane being hidden
  • Fixed incorrect plugin library location
  • Fixed animation timing problem with reveal widget that sometimes caused the sidebar not to show when requested
  • Fixed problem with saving with non-Dat URI schemes
  • Fixed deletion of $:/status/UserName when logged out

Node.js Improvements

  • Stopped clearing $:/status/UserName when logged out
  • Fixed bug with attempting to lazy load tiddlers that do not qualify for syncing
  • Added support for /*\ style metadata comments at the top of *.CSS files

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.1.18

 6 décembre 2018 à 9h00

See GitHub for detailed change history of this release

Major Improvements

Global Keyboard Shortcuts

This version introduces new infrastructure to handle global keyboard shortcuts. The core ships with the following shortcuts:

  • alt-I (or ctrl-I on Mac) - New image
  • alt-J (or ctrl-J on Mac) - New journal
  • alt-N (or ctrl-N on Mac) - New tiddler

See How to create keyboard shortcuts

Node.js HTTP Server

The HTTP WebServer functionality has been significantly improved:

See WebServer for more details, or see the changes on GitHub.

Special Characters in Tiddler Titles

In previous versions of TiddlyWiki, there were some special character sequences in tiddler titles that would break certain features. For example, a tiddler title ending in double quotes would cause the Table-of-Contents Macros to render incorrectly.

As of 5.1.18, many of these problems have been fixed by refactoring the features to use the latest abilities of wikitext:

Note that using certain characters in tiddler titles will still prevent some features from being used correctly. For example, two vertical bar characters are used in the double curly braces transclusion syntax to separate the tiddler title from the template title: {{title||template}}. However, although it would be impossible to transclude a tiddler called title||template using that syntax, one could still transclude it using <$transclude tiddler="title||template"/>.

Plugin Improvements

Translation Improvements

New and improved translations:

  • Catalan
  • Chinese Simplified and Chinese Traditional
  • Dutch
  • French
  • German

Usability Improvements

  • Added support for splash screens to be shown while TiddlyWiki is loading – see Creating a splash screen
  • Added display of backlinks when renaming a tiddler
  • Added persistent indicators at the bottom of the window showing any hidden drafts
  • Added current username (if set) to the title of draft tiddlers, making them easier to identify in multiuser scenarios
  • Added a warning for binary tiddlers in view mode
  • Extended permalink/permaview to copy the URL to the clipboard as well as updating the address bar. This behaviour can be customised in $:/ControlPanel settings
  • Improved saving to use the $:/SiteTitle as the basis of the filename
  • Added support for webp, heic and heif image formats
  • Fixed tiddler positioning when creating new tiddlers
  • Fixed smooth scrolling in new windows
  • Fixed problem dismissing popups within new windows
  • Fixed handling of disabled missing links so that core user interface features are not broken (see also here)

Hackability Improvements

Bug Fixes

  • Fixed with WidgetMessage: tm-new-tiddler overwriting creation fields of existing tiddlers
  • Fixed problem with unwanted variable substitutions by restricting variable substitutions to macros defined with the define pragma
  • Fixed problem with the 'excise' editor toolbar button not showing if the tiddler type is "text/vnd.tiddlywiki"
  • Fixed problem with generation of wifi QR codes
  • Fixed $tw.platform.isLinux on the latest Firefox
  • Fixed problem with using full screen on secondary windows
  • Fixed subtle bug whereby the RevealWidget was not refreshing properly when the state tiddler of a popup changed
  • Fixed problem with malformed HTML entities
  • Fixed crash when passing illegal arguments to the decodeuri Operator and decodeuricomponent Operator
  • Fixed errors when a popup blocker blocks opening a new window
  • Fixed problems using a lazily loaded tidler as a state tiddler with the RevealWidget
  • Fixed problem with modals not appearing in the correct window
  • Fixed the animations for adding and removing tags in edit mode, and a similar fix for the animations in the "Open" sidebar tab

Developer Bug Fixes and Improvements

  • Refactored $tw.utils.parseStringArray() to optionally allow non-unique entries

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.1.19

 20 décembre 2018 à 16h34

See GitHub for detailed change history of this release

This release consists of fixes for bugs discovered in Release 5.1.18.

Hackability Improvements

Bug Fixes

  • Fixed incompatible change to the construction of filename used for saving
  • Fixed problem with fonts for the KaTeX Plugin
  • Fixed problem with forcing basic authentication for the WebServer
  • Fixed problem with the ButtonWidget not refreshing when the popupTitle attribute changes
  • Fixed problem with empty.html accidentally containing a splash screen
  • Fixed regression with search matches across multiple fields

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Version 5.1.2

 6 octobre 2014 à 8h52

Voir GitHub pour un historique détaillé des modifications apportées par de cette version

Une nouvelle version mineure avec des mises à jour de la documentation, quelques corrections de bugs, et quelques améliorations.

Améliorations d'usage

  • Amélioration de la gestion des erreurs liées au plugin KaTeX pour les cas où le contenu LaTeX est malformé ou non reconnu.

Améliorations pour les bricoleurs

  • Amélioration du style du séparateur avant l'article sans étiquette dans la liste des tags de la barre latérale
  • Amélioration de la gestion d'erreur lors pour l'enregistreur de type dépôt (qui est utilisé pour enregistrer vers TiddlySpot)
  • Amélioration de la détection d'erreurs dans la vue sur le déroulé

Correction d'erreurs

  • Correction des crashs causé par des plugins mal formatés
  • Correction d'un problème faisant que les informations sur un tiddler n'étaient pas supprimées par le plugin de synchronisation après la suppression d'un tiddler
  • Correction de la gestion HTTP pour considérer le code de réponse 201 comme un succès.

Contributeurs

@Jermolene aimerait remercier les contributeurs de cette version, qui ont généreusement donné de leur temps pour aider à améliorer TiddlyWiki :

Release 5.1.20

 9 août 2019 à 15h13

See GitHub for detailed change history of this release

New Conditional Operators

Added new Conditional Operators then Operator and else Operator

New Mathematics Operators

Added several new Mathematics Operators for working with numbers: negate, abs, ceil, floor, round, trunc, untrunc, sign, add, subtract, multiply, divide, remainder, max, min, fixed, precision, exponential, sum, product, maxall and minall.

New String Operators

Added several new string operators: match, length, uppercase, lowercase, titlecase, sentencecase, trim, split, splitregexp and join.

Improved Handling of Duplicates in Filters

There is now finer control over TiddlyWiki's default behaviour of removing duplicates from filter results, making it much easier to work with the new mathematics and string operators:

  • Added support for new = prefix for merging filter runs without removing duplicates
  • Added option for the enlist Operator to not remove duplicates

Improved Keyboard Shortcuts

Keyboard shortcut handling has been significantly improved with the following new global shortcuts (configurable via $:/ControlPanel):

  • ctrl-shift-F - focus the sidebar search field
  • alt-shift-S - toggle the visibility of the sidebar
  • ctrl-shift-A - open the advanced search tiddler

Saving to GitHub and GitLab

Added a Git service saver for saving directly to GitHub and GitLab

Plugin Improvements

New and improved plugins:

Translation Improvements

New and improved translations:

  • Catalan
  • Chinese Simplified and Chinese Traditional
  • French
  • German
  • US English

Performance Improvements

  • Added pluggable index modules to accelerate the field Operator and the tag Operator (in tests on a wiki with 60K tiddlers, startup time is reduced by 25% with these optimisations, and refresh time is reduced by a factor of three.)
  • Optimised the "Classic" storyview to perform much faster when the animation duration is set to zero (approximtely 50% speed improvement was observed in tests opening a storyview with 8,000 entries)
  • Optimised the RevealWidget to avoid using the relatively slow localeCompare() method to compare strings
  • Updated Performance Instrumentation to show the timings for individual filters
  • Optimised rendering and refreshing child widgets

Usability Improvements

Hackability Improvements

Bug Fixes

  • Fixed a long standing problem with the main standalone HTML file template whereby raw markup tiddlers would be included even if not selected by the save filter
  • Fixed overlapping dropdowns with sticky titles enabled
  • Removed apparently obsolete limitation of selection wrapping in text editor
  • Fixed bug in RevealWidget when stateTitle tiddler is missing
  • Fixed bug with animation duration being blank
  • Fixed Firefox problem with drag and drop placeholders in the "open" tab of the sidebar
  • Ameliorated Firefox problem with sticky placeholder during drag and drop operations
  • Fixed CodeMirror Plugin to use tiddler-editor-border colour
  • Fixed problem using the TiddlySpot saver with cookies disabled
  • Fixed framed text editor to use correct background colour
  • Fixed problem with the class tc-sidebar-lists being used on two different areas of the sidebar, making it impossible to distinguish them in CSS selectors
  • Fixed problem with unnecessary "list" field created when renaming tiddlers
  • Fixed crash with EditBitmapWidget and missing tiddlers

Node.js Bug Fixes and Improvements

Developer Bug Fixes and Improvements

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.1.21

 10 septembre 2019 à 16h23

See GitHub for detailed change history of this release

Congratulations to Sylvain Comte for his winning design for the banner for this release (here are the other entries).

This is a bug fix release that resolves issues introduced in the recent Release 5.1.20.

Bug Fixes

Node.js Bug Fixes

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.1.22

 15 avril 2020 à 17h08

See GitHub for detailed change history of this release

Congratulations to Thomas Elmiger for his winning design for the banner for this release (here are the other entries).

Major Improvements

Dynamic Plugin Loading

Plugins can now be loaded or deleted dynamically, without requiring a reload – as long as they don't contain any JavaScript modules. Plugins that require a reload are indicated in the plugin chooser in $:/ControlPanel.

The plugin listing and the plugin chooser in the control panel feature several improvements:

  • A new "Updates" tab listing all upgrades available from a plugin library, and a button to update all of them with one click
  • Tabs are now used to display plugin libraries within the plugin chooser
  • The plugin chooser now displays plugins that provide add-on functionality to another plugin as nested "sub-plugins", making the main listing easier to navigate
  • Plugins may now declare dependencies that are automatically installed without user intervention
  • All plugins are now displayed more consistently, including a concise, informal name (in addition to the description and title)

Client-Server Improvements

This release sees several improvements to the client-server configuration:

  • Improved resilience to connection errors. Errors encountered by the browser are automatically retried, and when they succeed the associated error messages are automatically removed
  • Changes to system tiddlers are now synchronised from the server to the browser
  • Deletions of tiddlers on the server are now synchronised to the browser
  • New "cloud" page control button with a dropdown menu showing status and additional actions:
    • "Refresh from server" to force an immediate check for changes from the server
    • "Logout"
    • "Save snapshot for offline use" to save a copy of the wiki without the client-server components
    • "Copy syncer logs to clipboard" to make it easier to ask end users for debugging information
  • Added "filter" and "exclude" parameters to the GET /recipes/default/tiddlers.json endpoint to allow the returned tiddlers and fields to be filtered
  • Enhanced LazyLoading to include skinny versions of tiddlers in the HTML file, and to avoid unnecessary loads from the server
  • The official plugin library is now disabled when the tiddlyweb adaptor is active
  • Internal file system details are no longer exposed to browsers when a file request fails (see https://github.com/Jermolene/TiddlyWiki5/issues/3724)

See the pull request on GitHub for more details.

New compare Operator

Added a new filter operator for comparing numbers, strings, dates and version numbers. For example:

[[2]compare:number:eq[3]]
returns nothing
[[2]compare:number:lt[3]]
returns "2"
[[2]compare:number:eq[2]]
returns "2"
=1.2 =1.8 =2.3 =3.4 =7.2 +[compare:number:gt[1.5]compare:number:lt[2.5]]
returns "1.8" "2.3"
[[1]compare:number:gt[2]then[yes]else[no]]
returns "no"

New Plugins

  • Added new menubar plugin that creates a menu bar that is responsive on mobile devices, and supports search, dropdowns and links
  • Added new freelinks plugin to automatically create links from any tiddler title, without having to type double square brackets or use CamelCase.
  • Added new dynannotate plugin containing primitives for overlaying annotations or highlights over other content
  • Added new share plugin for sharing tiddlers via the URL location hash
  • Switched the markdown plugin to the newer and improved remarkable library

Translation Improvements

  • Improved Chinese translation
  • Improved Dutch translation
  • Improved French translation
  • Improved German translations
  • Improved Portuguese translation

Performance Improvements

Usability Improvements

Hackability Improvements

Bug Fixes

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.1.23

 24 décembre 2020 à 13h29

See GitHub for detailed change history of this release

Congratulations to Atronoush for his winning design for the banner for this release (here are the other entries).

Performance Improvements

  • amélioré filter execution to use a more efficient linked list structure for intermediate results
  • mis à jour widget mechanism to cache the result of parsing macros which don't use text substitution
  • mis à jour page templates to use a single VarsWidget instead of several SetVariableWidgets, for improved performance and easier debugging
  • mis à jour ListWidget to not initialize parsers for blank emptyMessage attributes

Usability Improvements

  • renommé "references" to "backlinks" in the tiddler info panel
  • ajouté warning message about using the online plugin library with the client-server configuration
  • mis à jour favicon for the prerelease edition
  • retiré normalize.css's styling of search input fields and mis à jour to a modern fork of normalize.css
  • retiré unneeded editor toolbar buttons when editing SVG tiddlers
  • ajouté global keyboard shortcut for switching layouts
  • cacher the .tid exporter when more than one tiddler to export

Import Mechanism Improvements

  • ajouté support for renaming tiddlers and a warning about overwriting existing tiddlers
  • ajouté colour coding for import items that will overwrite existing tiddlers, and for other warnings
  • amélioré other warnings in the import listing
  • corrigé content type of imported .tid files that do not have a type field
  • corrigé extraneous system tiddlers created during import process

Palette Improvements

Keyboard Handling Improvements

  • ajouté support for navigating the search and new tag dropdowns via the keyboard. The keyboard-driven-input Macro can be used to add this capability to other dropdowns
  • ajouté a tabIndex property to the tiddler editor input area to make it easier to use the tab key to move between edit controls
  • ajouté keyboard support for cycling through the tabs in $:/AdvancedSearch
  • ajouté keyboard support for navigating the field name dropdown in the Edit Template
  • ajouté keyboard support or navigating the type field input in the Edit Template
  • ajouté keyboard support for using the insert wikilink toolbar dropdown in the Edit Template
  • ajouté a keyboard shortcut for saving the wiki
  • ajouté a keyboard shortcut for deleting a field in the edit template
  • ajouté a keyboard shortcut to change the sidebar layout

Widget Improvements

Filter Improvements

New capabilities:

  • ajouté support for multiple operands for filter operators

New filter run prefixes:

New operators:

Other improvements:

Tiddler File Naming Improvements

étendu the mechanism for Customising Tiddler File Naming to:

Hackability Improvements

Plugin Improvements

JSZip Plugin

étendu the JSZip Plugin with the ability to dynamically create Zip files, and thus to conveniently build multi-file static sites within the browser

Consent Banner Plugin

ajouté the new Consent Banner Plugin plugin helps make websites that are compliant with "cookie legislation" such as the EU General Data Protection Regulation. It presents a banner inviting the user to accept or reject cookies, keeping track of their consent in local storage so that the banner can be hidden on subsequent visits.

By default, content embedded with <iframe>, <embed> and <object> is blocked unless the user consents to accept cookies.

Consent status is available via a configuration tiddler so that it is possible to construct content that behaves differently depending upon whether consent has been granted. As an example, a macro is provided for embedding YouTube videos that automatically uses the youtube-nocookie.com variant of video URLs unless the user has accepted cookies.

Please note that using this plugin does not guarantee compliance with any particular legislation. You will need to understand the technical issues specific to your situation, and if necessary seek legal advice.

Freelinks Plugin

  • ajouté (and ici) support for ignoring case when matching titles
  • corrigé bug with autolinking within HTML <a> elements

Twitter Plugin

  • ajouté warning if wiki needs to be saved and reloaded

Dynaview Plugin

CodeMirror Plugin

Markdown Plugin

  • corrigé encoding of Markdown image files
  • corrigé issue with whitespace and linebreaks
  • ajouté tc-tiddlylink-external class to external links
  • corrigé to add rel="noopener noreferrer" to external links
  • mis à jour to use palette colours

Amazon Web Services Plugin

  • ajouté a new aws-encodeuricomponent filter that also encodes single quotes

BibTeX Plugin

  • mis à jour to a later fork of the underlying third party BibTeX parsing library

Menubar Plugin

  • mis à jour so the top margin of the side bar adjusts to the height of the menu

Dynannotate Plugin

  • ajouté examples of usage in the View Template

External Attachments Plugin

Highlight Plugin

Translation Plugins

Other Bug Fixes

  • corrigé parsing of dates from 0 to 100CE
  • corrigé handling of negative dates (see Date Fields and DateFormat)
  • corrigé "409 conflict" errors with the GitHub saver when saving within 60 seconds of the last save
  • corrigé behaviour of system tiddler syncing with the client server configuration. By default, changes to system tiddlers are not synced from the server to the client, restoring the behaviour from v5.1.21 and earlier. Bidirectional syncing of system tiddlers can be enabled with the configuration tiddler $:/config/SyncSystemTiddlersFromServer
  • corrigé hover effect for search dropdown items
  • corrigé restored missing parameter to saveTiddler() method of syncadaptors
  • corrigé MakeLibraryCommand to skip non-directories
  • corrigé erroneous use of $tw.wiki
  • corrigé high CPU usage with animated syncing icon introduced in v5.1.22
  • corrigé $:/config/NewJournal/Tags appearing in tag dropdowns
  • corrigé popups not being cancelled when clicking within a text editor
  • corrigé issue with timeline Macro and invalid date values
  • corrigé hover colours of tag dropdowns in the sidebar
  • corrigé alignment of tag pill icons
  • corrigé crash with droppable widget
  • corrigé issue with adding tags in $:/Manager
  • corrigé edit template "type" dropdown positioning
  • corrigé edit template field dropdown positioning
  • corrigé (with addendum) syntax error in ScrollableWidget
  • corrigé problem with headers not being treated case insensitively
  • corrigé problem with Content-Type HTTP header sent as Content-type
  • corrigé EntityWidget not refreshing correctly
  • corrigé Markdown Plugin to honour alignment directives
  • corrigé syncing issues with external JS template
  • corrigé incorrect base64 encoding of astral plane Unicode text
  • corrigé server error when saving a new tiddler created by following a tiddler link
  • ajouté a plugin-priority field to the TiddlyWeb plugin so that language plugins can override its language strings
  • corrigé bug whereby joining an empty list would not return an empty list
  • corrigé bug exporting tiddlers with double quoted titles
  • corrigé bug with syncing plugin tiddlers
  • corrigé bug with the position of the tiddler title when there is no icon in use
  • corrigé unwanted autosave in the upgrade wizard
  • corrigé problem whereby $:/temp tiddlers were being saved in single file wikis
  • corrigé a bug with the sortan filter operator when used with date fields
  • corrigé a bug for location hashes that contain a # character
  • corrigé default branch to main for saving to GitHub
  • corrigé shadow tiddlers not refreshing when their plugin is deleted or modified
  • corrigé tc-dirty class not appearing on external windows
  • corrigé static.tiddler.html template to make rendered tiddlers full-width

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.1.3

 21 février 2015 à 23h01

See GitHub for detailed change history of this release

Usability Improvements

Hackability Improvements

Bug Fixes

  • Fixed the each operator to work with missing tiddlers
  • Fixed problem with tiddler width in zoomin storyview with the sidebar hidden
  • Fixed bug whereby the tm-home message wasn't navigating to a tiddler, causing problems in zoomin storyview
  • Fixed problem with jumping toolbar icons under Firefox
  • Fixed problem with untagged label being incorrectly coloured
  • Fixed problem with title background colours with the "Sticky Titles" theme
  • Fixed problem with subfilter parameter of timeline macro
  • Exclude search string tiddler from search results

Node.js Changes

These changes are only relevant to people using TiddlyWiki under Node.js

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.1.4

 22 octobre 2014 à 16h55

See GitHub for detailed change history of this release

This is a small release with documentation improvements and some important bug fixes from Release 5.1.3.

Usability Improvements

  • Added a toolbar button for advanced search
  • Changed dragging behaviour so that you can drag a tiddler title into an edit box to insert the title, making link creation easier. (This change doesn't affect the behaviour of dragging tiddler links between TiddlyWiki windows)

Hackability Improvements

  • Added additional theme tweaks for the body text size and line height
  • Extended the ViewWidget to work with subtiddlers

Bug Fixes

  • Fixed problem with search counts

Node.js Changes

These changes are only relevant to people using TiddlyWiki under Node.js

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.1.5

 21 février 2015 à 22h50

See GitHub for detailed change history of this release

Translation Improvements

  • Added new translators edition making it much easier to create and maintain translations of TiddlyWiki
  • Added improved Japanese translation
  • Added new Danish translation
  • Added new Greek translation

Usability Improvements

  • Improvements to tooltips for accessibility
  • Added export button to tiddler toolbar, page controls and advanced search "filter" tab
  • Improved layout of $:/TagManager
  • Simplified default tiddler toolbar buttons
  • Added advanced search button to sidebar search results
  • Improved search results by listing title matches at the top
  • Added input box for specifying new field value in edit template
  • Improved tag pill rendering so that the foreground colour is dynamically chosen for maximum contrast with the background colour
  • Enhancements to many of the core icons
  • Removed (and here, here and here) unnecessary confirmations when abandoning or deleting unmodified tiddlers
  • Added a subtle rounded corner to tiddlers and tabs
  • Added automatic focusing of the title of newly created tiddlers
  • Added advanced search links on tiddler counts in $:/ControlPanel

Hackability Improvements

Bug Fixes

Node.js Changes

These changes are only relevant to people using TiddlyWiki under Node.js

Changes affecting plugin authors

  • Disabled wiki change events for shadow tiddlers
  • Updated structure of widget messages that have a hashmap parameter
  • The support for nested popups has necessitated a change in the way that popups are styled that affects popups that are triggered with the focusPopup attribute of the EditTextWidget: it is now necessary for the widget to be given the class tc-popup-handle.

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.1.6

 21 février 2015 à 19h42

See GitHub for detailed change history of this release

Translation Improvements

  • Added Dutch translation
  • Updated Danish and Japanese translations

Hackability Improvements

Bug Fixes

  • Fixed problem with download saver using incorrect filename
  • Fixed problem with processing of date format templates
  • Fixed problem with storytop theme tweak not being respected when the narrow responsive design kicks in

Node.js Changes

These changes are only relevant to people using TiddlyWiki under Node.js

  • Fixed problem with "all tiddlers" static HTML export
  • Fixed incorrect checking for an empty folder with the InitCommand

Changes affecting plugin authors

  • Extended $tw.utils.each so that the loop can be broken out of

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.1.7

 19 décembre 2014 à 21h50

See GitHub for detailed change history of this release

This is an hot fix release with the following change over Release 5.1.6:

Version 5.1.8

 21 juin 2015 à 15h14

Rendez-vous sur GitHub pour l'historique détaillé des évolutions de cette version

Cette version intègre plusieurs améliorations à la documentation de TiddlyWiki. Tous mes remerciements à tous ceux qui y ont contribué, et spécialement à notre prodigieux nouveau contributeur Astrid Elocson.

Améliorations linguistiques

  • Amélioration des traductions Française, Danoise, Chinoise et Japonaise
  • Ajout de la traduction Tchèque
  • Ajout de la traduction Interlingua
  • Ajout de la traduction Portugaise
  • Ajout de la traduction Indou et Punjabe
  • Ajout de la traduction Slovaque
  • Ajout de la traduction Espagnole
  • Ajout localisation de l'invite de cryptage

Améliorations ergonomiques

  • Ajoute une d'interface utilisateur pour régler l'image d'arrière plan
  • Corrige un problème avec un défilement inutile au démarrage
  • Actualise le Plugin KaTeX vers le KaTeX v0.2.0, pour un meilleur support des symboles
  • Ajoute l'affichage d'un panneau d'aide flottant au Plugin Help
  • Ajoute le support d'une bibliothèque de plugins en ligne
  • Ajoute la sélection automatique de la zone de recherche au démarrage
  • Intègre le Plugin Railroad par Astrid Elocson (le voir en action dans la nouvelle documentation de la Syntaxe des filtres)
  • Migre la fonctionnalité "Titres Stickés", par un réglage optionnel, des thèmes "Vanilla"/"Snow White". Ainsi les titres des tiddlers collent au haut de la fenêtre pendant le défilement pour les navigateurs qui l'acceptent position: sticky (comme Safari et Firefox)
  • Ajoute des icones à RechercheAvancée, PanneauDeContrôle et GestionDesÉtiquettes
  • Change le libellé du bouton du tiddler "save" pour "confirm"
  • Ajoute la liaison automatique à des tiddlers système tels que $:/ControlPanel
  • Améliore le déroulé des listes de titres correspondant à l'étiquette
  • Ajoute une bannière avertissant l'utilisateur quand la modification de plugins demande la réactualisation de la page
  • Ajoute une première passe à la vue du déroulé "empilé"
  • Change les entêtes et pieds de page modaux afin d'être analysés par défaut dans le mode enligne (en évitant les balises <p> inutiles)

Améliorations Technologiques

Corrections de Bogues

  • Corrige les opérateurs sameday et eachday pour accepter les chaines de date TW5
  • Corrige les tests de compatibilité des numéros de version pour lesplugins
  • Corrige un problème avec l'annulation répétée d'une ébauche
  • Améliore la mise au bacasable des éléments <iframe> générés
  • Corrige un problème avec le mode arrière plan sur Firefox
  • Corrige un problème de glissé accidentel d'un tiddler dans sa fenêtre originale
  • Corrige un problème avec le glissé de certains plugins avec Safari
  • Corrige en partie un problème avec les icones SVG coupées d'1 pixel sur la droite et en bas
  • Corrige un problème avec les doubles cotes dans la valeur d'un nouveau champ

Modification de Node.js

Ces modifications affectent seulement les utilisateurs de TiddlyWiki sous Node.js

Contributeurs

@Jermolene tient à remercier tous les contributeurs de cette version qui ont généreusement donné de leur temps pour aider à l'amélioration de TiddlyWiki:

Release 5.1.9

 3 juillet 2015 à 16h37

See GitHub for detailed change history of this release

Major Improvements

New "Powered by TiddlyWiki" plugin

An experimental plugin to add a simple "Powered by TiddlyWiki" banner to your site. It is included in this prerelease but will not be on the main tiddlywiki.com wiki.

New "Fluid story, fixed sidebar" mode

It is now possible to arrange the main window so that the sidebar has a fixed width and the story river expands to fill the remaining space.

To switch it on, visit Theme Tweaks in the $:/ControlPanel Appearance tab and use the following options:

  • Sidebar layout:
    • Fixed story, fluid sidebar (default) - the story river has a fixed width and the sidebar fills the remaining space
    • Fluid story, fixed sidebar - the story river expands to fill horizontal space remaining after the fixed width sidebar
  • Sidebar width:
    • The width of the sidebar. Can be specified in pixels (eg 350px), a percentage (eg 25%) or other CSS unit

Toolbar Button Style Setting

A new setting in $:/ControlPanel Settings tab allows the toolbar button style to be chosen from the following options:

  • the existing style
  • , which adds a thin border box around the button
  • , which rounds the button corners and inverts the button colours

Plugins can add new style options.

New Tiddler Toolbar Button: "Open in new window"

An experimental new tiddler toolbar button opens a single tiddler in a separate pop-up browser window. The tiddler will be dynamically updated just as in the main window. There are several uses:

  • Arranging reference tiddlers for easy access while editing in the main window
  • Making good use of multi-screen layouts
  • Printing the content of a single tiddler
  • Running presentations in a separate window while maintaining notes in the main window

Improvements for visually impaired users

  • Improved monochrome palette variants:
    • . Foreground: , Background:
    • . Foreground: , Background:

New "Solar Flare" palette

There's a new core palette "Solar Flare", contributed by Rustem Akbulatov (@nameanyone).

Options for Story Control

There are new options for controlling the position in the story river of newly opened tiddlers. Visit the Settings tab of $:/ControlPanel and look for "Tiddler Opening Behaviour".

New Hidden Settings

Two new hidden settings for advanced configuration:

New Vars widget

Added VarsWidget for setting multiple variables in one operation:

<$vars greeting="Hi" me={{!!title}} sentence=<<helloworld>>>
  <<greeting>>! I am <<me>> and I say: <<sentence>>
</$vars>

Other Improvements

Translation Improvements

  • Updates to the Dutch, Chinese, Italian and German translations
  • New Catalan (Spain) translation

Usability Improvements

  • Added new page control icon for setting the palette:
  • Added new icons for palette and "open new window"
  • Improved the theme icon to better match the new palette icon:
  • Avoid glitch with autofocusing the search box in the plugin library
  • Added information about TiddlyDesktop to Releases
  • Stopped autosaving after cancelling an edit
  • Added dropdown to edit template to allow existing field names to be selected

Hackability Improvements

  • Updated to KaTeX version 0.4.3, with the following editions since the previous 0.2.0 release that was distributed with TiddlyWiki 5.1.8:
    • Added support for some \begin/\end environments, including support for array, matrix, pmatrix, bmatrix, vmatrix, and Vmatrix
    • Added support for optional \sqrt arguments, e.g. \sqrt[3]{x}
    • Add support for \phantom
    • Add \#, \&
    • See the KaTeX GitHub page for full release details
  • Extended ActionSendMessageWidget for more flexible passing of named parameters via new $name and $value attributes
  • Added styling for <kbd> elements such as escape and enter
  • Added subtle new "pin stripe" pattern for page background -
  • Added support for custom elements to the ButtonWidget
  • Improved CodeMirror plugin to automatically refresh when a tiddler type changes
  • Added new setting in $:/ControlPanel to render tiddler titles as links, which can be convenient for drag and drop
  • Simplified detecting the preview pane with the tv-tiddler-preview Variable
  • Improved automatic linking of system tiddler titles by restricting them to letters and the characters /.-

Bug Fixes

  • Fixed problem with special characters in field names
  • Fixed static banner layout on mobile devices
  • Fixed popups within the scrollable widget by adding position: relative; to example scrollable widget styles

Contributors

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.2.0

 3 octobre 2021 à 16h15

See GitHub for detailed change history of this release

Congratulations to Frank. B for his winning design for the banner for this release (here are the other entries).

Highlights

Unrestricted Fieldnames and the New JSON Store Area

The major change in this release is that the format used to store tiddlers in TiddlyWiki's HTML file has changed from an HTML DIV-based format to a new JSON-based format. The consequences of this change are far-reaching. They are thus the primary rationale for bumping the version number from v5.1.x to v5.2.0:

Firstly, the characters that can be used in field names are now unrestricted (just like tiddler titles), making it possible to use fieldnames like My^Field or ☃️. This has become possible because every other part of TiddlyWiki was already capable of dealing with unrestricted field names apart from saving as an HTML file.

Secondly, external tools that read, write or otherwise process TiddlyWiki HTML files will need modification to understand the new store area format. The details are documented in the /dev wiki.

For more details, see ticket #5708 on GitHub.

Dragging and Dropping Images into the Editor

It is now possible to drag and drop an image file directly into the tiddler text editor. A popup allows the incoming image tiddler to be renamed, and then [img[title]] is automatically inserted into the tiddler text at the insertion point.

  • ajouté (and again here) ability to drag and drop images directly in the editor

Simplified Access to Tiddler Title with ActionCreateTiddlerWidget

It is now possible to embed actions within the body of the ActionCreateTiddlerWidget, and those actions can directly access the title of the newly created tidddler via the variable createTiddler-title, and the title of the corresponding draft in the variable createTiddler-draftTitle. The old $savetitle and $savedrafttitle attributes are now deprecated.

<$button>
  <$action-createtiddler $basetitle="Homemade Button" tags="$:/tags/PageControls" text={{$:/state/new-button-caption}}>
    <$action-navigate $to=<<createTiddler-title>>/>
  </$action-createtiddler>
  Create a new non-functional page control button and open the tiddler
</$button>

For more details:

More Flexible Parsing of Macros

Two long-standing limitations of TiddlyWiki's macro syntax have been resolved.

First, it is now possible to nest macro calls within the parameters to other macros. For example:

<<mymacro arg:"""nested <<macro>> call""">>

Second, macro parameters can now be used within filter expressions. For example:

[<qualify "$:/state/mydata">addsuffix[-]addsuffix<now "YYYY MM DDD hh:mm:ss">]

Optimised Refreshing of Transclusions

This simple-sounding change has several important consequences:

The first consequence is that it makes the TranscludeWidget much more efficient, and improves the performance of the refresh cycle.

The second consequence resolves a long-standing difficulty for many users: it is now possible to use an EditWidget to edit another field of the same tiddler. Previously, the edit widget would not work properly in such cases because it would be refreshed on every keypress, leading to the current editing caret/selection position being lost.

As sometimes happens, the third consequence is that constructions that relied on the old, buggy behaviour may no longer work as expected. A common example of such a construction is an invocation of a JavaScript macro. The problem stems from the fact that JavaScript macros are designed to be as simple as possible from the developers perspective, being pure functions that have no side effects, and that always return the same value for the same parameters. In particular, JavaScript macros cannot participate in TiddlyWiki's refresh mechansim, so they cannot force themselves to be updated when underlying data changes (for situations where such processing is needed, JavaScript widgets should be used instead of JavaScript macros).

However, developers have sometimes worked around this limitation by using the TranscludeWidget to force refreshing of a macro invocation when a particular tiddler changes. The newer, more selective behaviour means that sometimes such widgets will avoid a refresh that was previously relied upon to update the JavaScript macro.

For end users, if an upgrade to v5.2.0 causes problems then consult the discussion Forums to see if other users have encountered the same problem, and make a new posting if needed.

  • amélioré the TranscludeWidget to avoid triggering a refresh unless the transcluded field changes (previously it was also triggered for changes to other fields)

Other Notable Improvements

étendu (and here) the ListWidget with an optional counter attribute specifying a variable to contain the numeric index of each list item. This is useful for creating a list of numbered items, and for detecting the first and last entries in a list

étendu action widget execution with an optional new mode that ensures that all widgets are refreshed before invocation – see ActionWidget Execution Modes. This resolves a long-standing inconsistency in the way that ActionWidgets are executed, making them behave much more like a conventional programming language

amélioré the HTML comment syntax to enable it to be used before and in between pragmas such as macro definitions. This makes it much easier to provide documentation within complex wikitext tiddlers

corrigé size of dropzone when story river is empty. For a long time, TiddlyWiki confusingly wouldn't recognise a drag and drop operation if the story river was empty

Performance Improvements

Usability Improvements

  • corrigé ability to import previously blocked system tiddlers
  • amélioré warning message when cancelling a pending import
  • mis à jour the default font weights in the "Snow White" theme to be thicker and more legible
  • corrigé modal mechanism to prevent page from scrolling while modals are displayed
  • corrigé fill colour for "remove tag" button
  • corrigé page title so that the separating em-dash is only used if the site subtitle is present
  • corrigé broken aria-label in $:/PaletteManager
  • mis à jour SVG optimiser script
  • ajouté plus/minus SVG icons: and
  • ajouté link to the existing tiddler when the warning "Target tiddler already exists" is displayed in the edit template
  • ajouté class to make tag pills in the edit template look like those in the ViewTemplate
  • corrigé overflow of long field values that do not contain whitespace
  • amélioré GitHub, Gitea and GitLab savers to wikify the commit message, enabling macros to be used in the message
  • amélioré the text editor stamp toolbar button dropdown to allow sorting by drag and drop

Widget Improvements

Filter improvements

Hackability Improvements

Client-server Improvements

Node.js Improvements

Plugin Improvements

Markdown Plugin

XLSX Utilities Plugin

  • corrigé crash with the XLSX Utils plugin

KaTeX Plugin

Freelinks Plugin

  • étendu the Freelinks plugin with a filter to determine which tiddlers can be the targets of freelinks

Menubar Plugin

  • corrigé Menu plugin to support optional dropdown-position field

BibTeX Plugin

Developer Experience Improvements

  • amélioré the widget subclassing mechanism to work with widgets that add event listeners in their constructor
  • amélioré the Jasmine test suite output
  • étendu wikitext parser with a subclassing mechanism
  • ajouté added support for utils-browser modules
  • ajouté th-before-importing hook to allow plugins to inspect or modify the importTiddler object before any tiddlers are imported
  • ajouté th-closing-tiddler hook when tiddlers are closed

Translation improvements

Other Bug Fixes

  • corrigé crash with malformed input to decodeURIComponent()
  • corrigé issue with lookup Operator returning "undefined" under some circumstances
  • corrigé crash with unterminated wikitext comments
  • corrigé tiddler info area content bleeding on close animation
  • corrigé inline/block widget parsing glitch
  • corrigé runaway regexp when parsing filters
  • corrigé right margin of tag pill when used outside of the tags wrapper
  • étendu upload saver to optionally work without a username or password
  • corrigé RadioWidget to refresh selectively, and to use the checked attribute correctly
  • corrigé "invert" option of wiki.search() method
  • corrigé ES5 compatibility issue
  • corrigé exporting of tiddlers that begin and end with double quotes
  • amélioré accessibility of button widget when controlling a popup
  • corrigé EditTextWidget to use default text for missing fields
  • corrigé css-escape-polyfill to work under Node.js
  • corrigé (and here) crash when sorting by non-string fields
  • corrigé (and here) some bugs in the EventCatcherWidget, introduced new stopPropagation attribute and new syntax for specifying actions
  • corrigé CurrentTiddler variable consistency in subfilters and prefixes
  • corrigé crash when accessing variables in filters that don't have a widget context
  • corrigé unnecessary triggering of reload warning when JavaScript tiddlers are not subsequently imported
  • corrigé minor issue with import pragma
  • corrigé leading and trailing whitespace in themes
  • corrigé configuration list of HTML5 block elements
  • corrigé shape and color for disabled button to work with tc-btn-invisible class
  • corrigé inconsistent spacing of view toolbar items
  • corrigé crash when assigning new value to file input controls
  • corrigé text editor stamp button to work with prefixes and suffixes in shadow tiddlers
  • corrigé Internet Explorer crash when pasting text using an HTA
  • corrigé bug with [all[shadows]] sometimes returning overridden shadow tiddlers
  • corrigé refresh bug with radio widget where the tc-radio-selected class is not correctly updated
  • corrigé crash with reading invalid JSON files

Acknowledgements

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.2.1

 8 décembre 2021 à 11h58

See GitHub for detailed change history of this release

Congratulations to Mohammad Rahmani and Elise Springer for their winning design for the banner for this release (here are the other entries).

Highlights

ajouté New Filter Cascade Mechanism

The cascade mechanism provides a flexible way to choose between multiple options. Crucially, it is done in a way that makes it simple for plugins to tweak the logic or add their own options.

Some of the things that can be done with cascades are:

  • Replacing the default tiddler body template with a custom one for a certain type of tiddler
  • Giving all journal tiddlers a custom icon
  • Implementing a custom editor for certain types of tiddler

There are two parts to these changes. The underpinning is a new Cascade Filter Run Prefix that takes a list of filters and runs them in order, returning the result of the first one to return a value.

The second part is a series of improvements based on this new filter cascade mechanism. Conditional logic that was previously hidden within core templates can now be extended and tweaked much more easily than before.

Choosing the following elements of the core user interface is now handled with cascades:

The cascades can be inspected in $:/ControlPanel under Info -> Advanced -> Cascades.

See Cascades for more information.

ajouté New LetWidget

The LetWidget is an improved alternative to the existing VarsWidget. It is recommended to use the new LetWidget instead of the VarsWidget in all circumstances.

The chief advantage is that the LetWidget performs the variable assignments in the same order as they are written, and permits references to earlier assignments. For example, here we swap the values of two variables:

<$let temp=<<foo>> foo=<<bar>> bar=<<temp>>>
...
</$let>

Bug Fixes

Usability Improvements

  • corrigé image picker in theme tweaks to not dismiss when an image is selected
  • ajouté a new hidden setting for controlling the visibility of the editor preview pane on a per-tiddler basis
  • amélioré sidebar plugin listing to show icon and more details

Widget Improvements

Filter improvements

Hackability Improvements

Developer Improvements

  • ajouté support for widgets to access the order in which attributes are defined

Node.js Improvements

Translation improvements

  • Polish
  • Chinese

Acknowledgements

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.2.2

 25 mars 2022 à 13h08

See GitHub for detailed change history of this release

Congratulations to Elise Springer for her winning design for the banner for this release (here is the competition thread).

Highlights

mis à jour Highlight Plugin to use highlight.js v11.4.0

This is a major upgrade to the latest version of highlight.js. The new version has many improvements, including better support for Fortran.

The new version of the Highlight Plugin requires a modern browser that fully supports JavaScript ES6 (released in 2015). The older version is still available as the highlight-legacy plugin for users who need to use an older browser.

étendu support for secondary windows

The WidgetMessage: tm-open-window now supports an optional windowID parameter so that opened windows can be closed with the new WidgetMessage: tm-close-window message. There is also a new WidgetMessage: tm-close-all-windows message which closes all secondary windows.

ajouté support for line breaks within filtered transcluded attributes

To improve readability, it is now possible to use newlines as whitespace within filtered transcluded attributes of HTML elements and widgets. For example:

<span class={{{
	[<currentTiddler>addsuffix[-primaryList]]
	:except[<searchListState>get[text]]
	:and[then[]else[tc-list-item-selected]]
}}}>

corrigé inconsistent ordering of tagged tiddlers

This was a long standing bug that manifested itself in several ways.

The root cause was that the order in which tiddlers were enumerated depended upon the order in which they had been added to the store.

The effect was that lists based on enumerating tiddlers would show different results depending upon whether new tiddlers were added since the wiki was reloaded.

For example, adding a new tiddler with a given tag previously caused the new tiddler to appear at the bottom of the tag pill listing for that tag. Saving and reloading the wiki would reorder the list to put the new tiddler in the correct position.

The fix ensures that the enumeration order remains consistent.

corrigé some incorrectly nested <span> and <div> elements

TiddlyWiki's core page layout has historically included several instances of inline <span> elements containing block <div> elements, something that is technically invalid HTML. In practice, browsers have always handled these cases leniently to make the page work but it has also been unhelpful for developers to encountering invalid HTML constructions in their first interactions with TiddlyWiki.

The immediate prompt for starting to fix these issue now is that Chrome v100 includes a change that causes some of these misnested elements to be rendered correctly visually but to be unclickable in some situations. (The change is reverted in Chrome v102, but it still makes sense to fix it)

Plugin Improvements

Translation improvements

  • Polish
  • Chinese
  • French

Usability Improvements

  • amélioré wording of drag and drop banner (from "drop here" to "drop now")
  • corrigé wrapping and wikification of field names in field viewer
  • corrigé missing whitespace between description and MIME type in edit template dropdown for the type field
  • corrigé incorrect usage of code view for certain system tiddlers
  • corrigé sidebar plugin listing to be sorted by name rather than description

Widget Improvements

Filter improvements

Hackability Improvements

Developer Improvements

Node.js Improvements

Performance Improvements

Bug Fixes

Acknowledgements

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.2.3

 2 août 2022 à 13h25

See GitHub for detailed change history of this release

Congratulations to feedthegood for their winning design for the banner for this release (here is the competition thread and the voting thread).

Plugin Improvements

Translation improvements

  • Chinese
  • French
  • German
  • Japanese
  • Polish

Accessibility Improvements

Usability Improvements

Widget Improvements

Filter improvements

Hackability Improvements

Bug Fixes

Developer Improvements

Node.js Improvements

Performance Improvements

  • mis à jour filter processing to allow compiled filters to be cached

Acknowledgements

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.2.4

 13 décembre 2022 à 16h31

See GitHub for detailed change history of this release

Congratulations to dmikh for their winning design for the banner for this release (here is the competition thread and the voting thread).

Important Update

After the release of v5.2.5, we found some backwards compatibility issues with the stylesheet changes in #7039 and #6910. We have therefore decided to make a rapid bug fix Release 5.2.5 to resolve these issues, and all users should upgrade to the new version.

Major Improvements

New Twitter Archivist plugin to import the tweets and associated media from a Twitter Archive as individual tiddlers.

ajouté new GenesisWidget that allows the dynamic construction of another widget, where the name and attributes of the new widget can be dynamically determined, without needing to be known in advance

ajouté (and ici) new operators for reading and formatting JSON data: jsonget Operator, jsonindexes Operator, jsontype Operator, jsonextract Operator and format Operator

Translation Improvements

Improvements to the following translations:

  • Chinese
  • French
  • German
  • Polish
  • Spanish
  • Japanese

Improvements to the translation features of TiddlyWiki itself:

Usability Improvements

Widget Improvements

Filter improvements

  • corrigé issue with availability of variables within filter runs
  • corrigé issue with removing multiple items from a linked list during filter processing

Hackability Improvements

Bug Fixes

  • corrigé truncated search results on small screens
  • corrigé table contents overflow on small screens
  • corrigé "new image" keyboard shortcut not to assign journal tags
  • corrigé SelectWidget class to update if it uses a filter
  • corrigé issue with wikification within the advanced search filter dropdown
  • corrigé the table in $:/Import to avoid creating hidden empty rows
  • corrigé advanced search keyboard shortcut not navigating correctly
  • corrigé erroneous display of drafts within the advanced search filter dropdown
  • corrigé backwards compatibility of new field editor cascade introduced in v5.2.3

Node.js Improvements

  • ajouté new CommandsCommand to enable command tokens to be dynamically generated from a filter
  • amélioré console logging to avoid spaces and <empty string> message
  • corrigé problem with lazy loading deleting tiddler bodies under certain circumstances
  • corrigé handling of ".mp4" file extension so that it defaults to video not audio
  • ajouté test server to the plugin library edition
  • ajouté Hidden Setting: Sync Logging to control logging of sync-related messages
  • mis à jour Jasmine plugin to require the explicit use of the --test command in order to cause the tests to be run

Performance Improvements

  • amélioré performance of wiki.getTiddler()
  • amélioré performance of variable prototype chain handling
  • amélioré performance of list handling during filter processing

Acknowledgements

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.2.5

 19 décembre 2022 à 18h45

See GitHub for detailed change history of this release

Congratulations to dmikh for their winning design for the banner for this release (here is the competition thread and the voting thread).

This is a bug fix release intended to resolve backwards compatibility issues discovered in v5.2.4. See this GitHub ticket for the background.

The issues are entirely cosmetic stylesheet changes, and do not affect the functionality of TiddlyWiki. However, we encourage all users to upgrade to this new version for consistency.

Since v5.2.5 replaces v5.2.4 that was only released for a week, here is the release note for v5.2.4.

Release Note for v5.2.4

See GitHub for detailed change history of this release

Congratulations to dmikh for their winning design for the banner for this release (here is the competition thread and the voting thread).

Important Update

After the release of v5.2.5, we found some backwards compatibility issues with the stylesheet changes in #7039 and #6910. We have therefore decided to make a rapid bug fix Release 5.2.5 to resolve these issues, and all users should upgrade to the new version.

Major Improvements

New Twitter Archivist plugin to import the tweets and associated media from a Twitter Archive as individual tiddlers.

ajouté new GenesisWidget that allows the dynamic construction of another widget, where the name and attributes of the new widget can be dynamically determined, without needing to be known in advance

ajouté (and ici) new operators for reading and formatting JSON data: jsonget Operator, jsonindexes Operator, jsontype Operator, jsonextract Operator and format Operator

Translation Improvements

Improvements to the following translations:

  • Chinese
  • French
  • German
  • Polish
  • Spanish
  • Japanese

Improvements to the translation features of TiddlyWiki itself:

Usability Improvements

Widget Improvements

Filter improvements

  • corrigé issue with availability of variables within filter runs
  • corrigé issue with removing multiple items from a linked list during filter processing

Hackability Improvements

Bug Fixes

  • corrigé truncated search results on small screens
  • corrigé table contents overflow on small screens
  • corrigé "new image" keyboard shortcut not to assign journal tags
  • corrigé SelectWidget class to update if it uses a filter
  • corrigé issue with wikification within the advanced search filter dropdown
  • corrigé the table in $:/Import to avoid creating hidden empty rows
  • corrigé advanced search keyboard shortcut not navigating correctly
  • corrigé erroneous display of drafts within the advanced search filter dropdown
  • corrigé backwards compatibility of new field editor cascade introduced in v5.2.3

Node.js Improvements

  • ajouté new CommandsCommand to enable command tokens to be dynamically generated from a filter
  • amélioré console logging to avoid spaces and <empty string> message
  • corrigé problem with lazy loading deleting tiddler bodies under certain circumstances
  • corrigé handling of ".mp4" file extension so that it defaults to video not audio
  • ajouté test server to the plugin library edition
  • ajouté Hidden Setting: Sync Logging to control logging of sync-related messages
  • mis à jour Jasmine plugin to require the explicit use of the --test command in order to cause the tests to be run

Performance Improvements

  • amélioré performance of wiki.getTiddler()
  • amélioré performance of variable prototype chain handling
  • amélioré performance of list handling during filter processing

Acknowledgements

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.2.6

 20 mars 2023 à 18h43

See GitHub for detailed change history of this release

Congratulations to StS for their winning design for the banner for this release (here is the competition thread and the voting thread).

Major Improvements

Improved Markdown Plugin

Better Handling of Loss of Network Connectivity with Client Server Configuration

  • ajouté integration between the BrowserStorage Plugin and the client-server configuration to allow changes to be made while offline and then later resynchronised with the server

New Diff-Match-Patch Primitives

Translation Improvements

Improvements to the following translations:

  • Chinese
  • German
  • Italian
  • Polish

Plugin Improvements

Accessibility Improvements

  • amélioré appearance of save wiki button so that it is accessible to users without colour vision

Usability Improvements

  • amélioré consistency of tiddler deletion by allowing missing tiddlers to be 'deleted', which just results in them being closed
  • amélioré layout switcher to include an optional icon for each layout
  • retiré improvements to table layout from v5.2.5 that have proved to not be backwards compatible
  • ajouté support for &dollar; HTML entity

Widget Improvements

  • étendu EditTextWidget to support focusSelectFromStart and focusSelectFromEnd attributes to give better control over text selection

Filter improvements

Hackability Improvements

Bug Fixes

Node.js Improvements

  • corrigé duplicate fields in internal templates used in client-server configuration
  • corrigé lazy loading not triggering a sync from the server
  • corrigé crash on creating a new tiddler if anonymous users manage to create syncable tiddlers in a read only wiki
  • amélioré handling of logout in the client-server configuration to avoid 404 errors
  • corrigé problem with saving tiddlers with _canonical_uri field as .tid files
  • corrigé missing meta viewport to static river template

Performance Improvements

  • amélioré field indexer to more efficiently process lookups

Acknowledgements

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.2.7

 26 mars 2023 à 9h32

See GitHub for detailed change history of this release

Congratulations to StS for their winning design for the banner for this release (here is the competition thread and the voting thread).

This is a bug fix release intended to resolve a backwards compatibility issue discovered in v5.2.6. See this GitHub ticket for the background.

The issue is that trailing newlines within a macro definitions were being ignored, which affected whether the content were parsed in inline or block mode.

Since v5.2.7 replaces v5.2.6 that was only released for less than a week, here is the release note for v5.2.6.

Release Note for v5.2.6

See GitHub for detailed change history of this release

Congratulations to StS for their winning design for the banner for this release (here is the competition thread and the voting thread).

Major Improvements

Improved Markdown Plugin

Better Handling of Loss of Network Connectivity with Client Server Configuration

  • ajouté integration between the BrowserStorage Plugin and the client-server configuration to allow changes to be made while offline and then later resynchronised with the server

New Diff-Match-Patch Primitives

Translation Improvements

Improvements to the following translations:

  • Chinese
  • German
  • Italian
  • Polish

Plugin Improvements

Accessibility Improvements

  • amélioré appearance of save wiki button so that it is accessible to users without colour vision

Usability Improvements

  • amélioré consistency of tiddler deletion by allowing missing tiddlers to be 'deleted', which just results in them being closed
  • amélioré layout switcher to include an optional icon for each layout
  • retiré improvements to table layout from v5.2.5 that have proved to not be backwards compatible
  • ajouté support for &dollar; HTML entity

Widget Improvements

  • étendu EditTextWidget to support focusSelectFromStart and focusSelectFromEnd attributes to give better control over text selection

Filter improvements

Hackability Improvements

Bug Fixes

Node.js Improvements

  • corrigé duplicate fields in internal templates used in client-server configuration
  • corrigé lazy loading not triggering a sync from the server
  • corrigé crash on creating a new tiddler if anonymous users manage to create syncable tiddlers in a read only wiki
  • amélioré handling of logout in the client-server configuration to avoid 404 errors
  • corrigé problem with saving tiddlers with _canonical_uri field as .tid files
  • corrigé missing meta viewport to static river template

Performance Improvements

  • amélioré field indexer to more efficiently process lookups

Acknowledgements

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.3.0

 1 juillet 2023 à 13h34

See GitHub for detailed change history of this release

Congratulations to vilc for their winning design for the banner for this release (here is the competition thread).

Overview of v5.3.0

This release introduces a number of significant improvements and new features related to some of TiddlyWiki's most fundamental components: macros, widgets, operators and transclusion. v5.3.0 also contains several other bug fixes and improvements.

Introduction to Parameterised Transclusion, Procedures, Functions and Custom Widgets

ajouté The motivation of these changes is to fix one of TiddlyWiki 5's early design flaws: the reliance on macros using textual substitution as the primary way to modularise and reuse wikitext and filters.

Experience has shown that while macros are a good match for a small number of tasks, they are brittle and error prone for many common operations. See Macro Pitfalls for a discussion of the problems that accompany this approach. Over the years we have introduced mitigations for the worst problems but these have come at a cost of increased complexity.

The changes in this release provide powerful new ways to achieve common tasks, and unlock completely new capabilities that were previously impossible in wikitext.

  • Procedures, which are essentially what macros should have been; they work in exactly the same way except that parameters are exposed as simple variables (without the double underscores) and no textual substitution takes place
  • Custom Widgets, allowing the creation of widgets in wikitext, and the redefinition of built-in widgets
  • Functions, a new way to encapsulate filter expressions with named parameters, including the ability to make custom filter operators
  • Parameterised Transclusions, allowing strings and wikitext trees to be passed to transclusions

The approach taken by this release is to add new functionality by extending and augmenting the system without disturbing existing functionality. All of these changes are thus intended to be backwards compatible. While they represent a new field of opportunities for wikitext authors, it is possible for authors to ignore all these new features and continue to use TiddlyWiki 5 in the way that they have always done.

These changes lay the groundwork for macros and related features to be deprecated (which is the point at which users are advised not to use old features, and instead given clear pointers to the equivalent modern functionality).

Text Substitution Improvements

ajouté The new transclusion architecture is not by itself sufficient to enable us to fully deprecate macros yet. To handle most of the remaining use cases this release adds convenient new ways of using textual substitution without having to create a macro:

Firstly, the new text substitution syntax for widget attributes allows widget attributes to be assigned the value of a string with certain placeholders being replaced by their processed contents. For example:

  • Substitute variable names with the value:
    attr=`Current tiddler is $(currentTiddler)$`
  • Substitute filter expressions with the first value they return:
    attr=```There are ${ [tag[Done]count[]] }$ completed tasks```

Secondly, the new substitute operator allows the same textual substitutions to be performed via a filter operator with the addition of positional parameters that use placeholders of the form $1$, $2$, $3$ etc.

[[https://$1$/$(currentTiddler)$]substitute<domain-name>]

HTTP Requests in WikiText

ajouté new WidgetMessage: tm-http-request for performing HTTP requests in WikiText. This opens up some exciting new opportunities:

  • Integration with Web-based APIs. The documentation includes an example of using the Zotero API to retrieve academic citation data
  • Dynamic content loading: additional tiddlers can be imported dynamically after the main wiki has loaded

Defaulting to Disabling CamelCase Links

mis à jour CamelCase linking is now disabled by default for new wikis. (Note that this documentation wiki has CamelCase linking explicitly enabled because much of the old content was written relying on them).

Plugin Improvements

Translation improvement

Improvements to the following translations:

  • French
  • German
  • Polish
  • Chinese

Usability Improvements

Filter improvements

Hackability Improvements

Bug Fixes

Node.js Improvements

Performance Improvements

  • corrigé module execution to reuse the same sandbox, saving memory and improving performance

Acknowledgements

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Release 5.3.1

 20 août 2023 à 12h28

See GitHub for detailed change history of this release

Congratulations to vilc for their winning design for the banner for this release (here is the competition thread).

Overview of v5.3.1

This release comes only a few weeks after v5.3.0. The motivation for the release is to swiftly fix some issues that have emerged with v5.3.0. There are also some other improvements included in this release, notably the ability to access binary resources over HTTP – the demo downloads a random image or video of a dog.

Bug Fixes and Reversions of v5.3.0 Changes

  • Reverted adding the widget.destroy() method because of performance concerns (see https://github.com/Jermolene/TiddlyWiki5/pull/7468)
  • corrigé inefficiency when transcluding with the $output attribute set to text/plain that manifested itself as extremely slow export times
  • corrigé unwanted error message "Global assignment is not allowed within modules on node"

Translation improvement

Improvements to the following translations:

  • Chinese
  • Polish

Widget Improvements

Hackability Improvements

Bug Fixes

Node.js Improvements

Developer Improvements

  • corrigé overeager onload handler in Jasmine plugin
  • corrigé ordering of shadow tiddler listings to not reflect order of insertion

Acknowledgements

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

Versions

 31 mai 2015 à 20h11

Voici la description des récentes mise à jour de TiddlyWiki5. Voir TiddlyWiki5 Versioning pour plus de détails sur la nomination des versions.

(Les versions Bêta et Alpha sont listées séparément).

Release 5.3.1

Released 20 août 2023 at 12:28

See GitHub for detailed change history of this release

Congratulations to vilc for their winning design for the banner for this release (here is the competition thread).

Overview of v5.3.1

This release comes only a few weeks after v5.3.0. The motivation for the release is to swiftly fix some issues that have emerged with v5.3.0. There are also some other improvements included in this release, notably the ability to access binary resources over HTTP – the demo downloads a random image or video of a dog.

Bug Fixes and Reversions of v5.3.0 Changes

  • Reverted adding the widget.destroy() method because of performance concerns (see https://github.com/Jermolene/TiddlyWiki5/pull/7468)
  • corrigé inefficiency when transcluding with the $output attribute set to text/plain that manifested itself as extremely slow export times
  • corrigé unwanted error message "Global assignment is not allowed within modules on node"

Translation improvement

Improvements to the following translations:

  • Chinese
  • Polish

Widget Improvements

Hackability Improvements

Bug Fixes

Node.js Improvements

Developer Improvements

  • corrigé overeager onload handler in Jasmine plugin
  • corrigé ordering of shadow tiddler listings to not reflect order of insertion

Acknowledgements

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

ReleaseTemplate

 

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

ReleaseTemplate

Released TBA

Erreur dans le widget transclude : transclusion récursive

Released Erreur dans le widget transclude : transclusion récursive

Erreur dans le widget transclude : transclusion récursive

Erreur dans le widget transclude : transclusion récursive

Erreur dans le widget transclude : transclusion récursive

Erreur dans le widget transclude : transclusion récursive

Erreur dans le widget transclude : transclusion récursive

remainder Operator

 11 juin 2019 à 14h01
purposetreating each input title as a number, return the remainder when divided by the numeric value of the operand
inputa selection of titles
parameterN = a number
outputthe input as numbers, but with each replaced by the remainder when dividing it by N

Learn more about how to use Filters

Depuis : 5.1.20 See Mathematics Operators for an overview.

Examples

remainder Operator (Examples)

 11 juin 2019 à 14h01

[[23]remainder[3]]

=1 =2 =3 =4 +[remainder[2]]

remove Operator

 25 janvier 2017 à 20h00
purposeremove a list of titles specified in the operand from the input
inputa list of items
suffixan integer N, defaulting to all
parameterarray = an array of items to remove
outputitems removed from current list that appear at the head of the operand array
! outputitems removed from current list that appear at the tail of the operand array

Learn more about how to use Filters

remove Operator (Examples)

 8 novembre 2015 à 5h20

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]] +[remove[Tuesday Wednesday Thursday]]

[list[Days of the Week]] +[remove:3[Monday Wednesday Friday Saturday]]

[list[Days of the Week]] +[!remove:2{Days of the Week!!list}]

removeprefix Operator

 18 février 2022 à 2h34
purposefilter the input titles by how they start, deleting that prefix
inputa selection of titles
suffixthe removeprefix operator uses a rich suffix, see below for details
parameterS = a string of characters
outputthose input titles that start with S, but with those characters discarded

Learn more about how to use Filters

This filters out input titles that do not start with S. For removing S without filtering out input titles that don't start with S, see trim.

Depuis : 5.2.2

The removeprefix operator uses an extended syntax that permits multiple flags to be passed:

[removeprefix:<flag list>[<operand>]]
  • flag list: a comma delimited list of flags
  • operand: filter operand

The available flags are:

  • casesensitive: (default), this flag forces a case-sensitive match, where upper and lower case letters are considered different
  • caseinsensitive: overrides the default so that upper and lower case letters are considered identical for matching purposes

Examples

removeprefix Operator (Examples)

 18 février 2022 à 2h34

[[My Cat]] [[Your Garden]] [[My Favourite Armchair]] +[removeprefix[My ]]

[[My Cat]] [[Your Garden]] [[My Favourite Armchair]] +[removeprefix:caseinsensitive[my ]]

removesuffix Operator

 18 février 2022 à 2h34
purposefilter the input titles by how they end, deleting that suffix
inputa selection of titles
suffixthe removesuffix operator uses a rich suffix, see below for details
parameterS = a string of characters
outputthose input titles that end with S, but with those characters discarded

Learn more about how to use Filters

This filters out input titles that do not end with S. For removing S without filtering out input titles that don't end with S, see trim.

Depuis : 5.2.2

The removesuffix operator uses an extended syntax that permits multiple flags to be passed:

[removesuffix:<flag list>[<operand>]]
  • flag list: a comma delimited list of flags
  • operand: filter operand

The available flags are:

  • casesensitive: (default), this flag forces a case-sensitive match, where upper and lower case letters are considered different
  • caseinsensitive: overrides the default so that upper and lower case letters are considered identical for matching purposes

Examples

removesuffix Operator (Examples)

 18 février 2022 à 2h34

SIMPLEX Googolplex Complex +[removesuffix[plex]]

SIMPLEX Googolplex Complex +[removesuffix:caseinsensitive[plex]]

RenderCommand

 19 septembre 2017 à 14h18

Exécute le contenu des tiddlers individuels identifiés par un filtre et enregistre le résultat vers les fichiers spécifiés.

Optionellement, on peut spécifier le titre d'un tiddler modèle (template). Dans ce cas, au lieu d'exécuter directement le contenu de chaque tiddler, le modèle est exécuté après avoir donné pour valeur à la variable "currentTiddler" le titre du tiddler dont le contenu est en cours d'exécution.

On peut spécifier le nom et la valeur d'une variable supplémentaire.

--render <filtre-sur-les-tiddlers> [<filtre-des-noms-de-fichier>] [<type-de-rendu>] [<modèle>] [ [<nom>] [<valeur>] ]*
  • filtre-sur-les-tiddlers: Un filtre qui indentifie les tiddlers dont le contenu doit être exécuté
  • filtre-des-noms-de-fichier: filtre optionnel pour transformer les titres de tiddlers en chemin de fichiers. À défaut, le filtre utilisé est [is[tiddler]addsuffix[.html]], qui utilise le titre inchangé du tiddler comme nom de fichier
  • modèle: Modèle optionnel via lequel chaque tiddler doit être rendu
  • type-de-rendu: Type de rendu optionnel : la valeur text/html (par défaut) retourne le text HTML complet et text/plain se contente de retourner le contenu sous forme texte (autrement dit ignore les balises HTML et autres caractères non imprimables)
  • nom: Nom des variables optionnelles
  • valeur: Valeur des variables optionnelles

Par défaut, le nom de fichier est résolu relativement au sous-répertoire output du répertoire de l'édition. La commande --output peut servir à diriger les sorties vers un répertoire différent.

Notes :

  • Les éventuels fichiers présents dans le répertoire de sortie ne sont pas supprimmés
  • Les répertoires absents dans le chemin de fichier sont créés automatiquement.
  • Lorsqu'un tiddler contient des espaces dans le titre, prendre garde à utiliser aussi bien les guillemets nécessaires au shell et les doubles crochets droits propres à TiddlyWiki : --render "[[Motovun Jack.jpg]]"
  • Le filtre des noms de fichier est évalué après avoir initialisé l'élément d'entrée avec le titre du tiddler en cours d'exécution, permettant ainsi d'utiliser le titre comme base de calcul pour le nom de fichier. Par exemple [encodeuricomponent[]addprefix[static/]] applique un encodage d'URI à chaque titre, puis ajoute le préfixe static/
  • Il est possible d'utiliser plusieurs paires nom/valeur pour passer plus d'une variable
  • La commande --render remplace de manière plus souple les deux commandes --rendertiddler et --rendertiddlers, qui sont du même coup obsolètes.

Exemples :

  • --render "[!is[system]]" "[encodeuricomponent[]addprefix[tiddlers/]addsuffix[.html]]" – enregistre le rendu HTML de tous les tiddlers non-système vers des fichiers du sous-répertoire "tiddlers", nommés après encodage URL des titres et ajout d'une extension html.
  • --render '.' 'tiddlers.json' 'text/plain' '$:/core/templates/exporters/JsonFile' 'exportFilter' '[tag[HelloThere]]' – enregistre le rendu JSON des tiddlers tagués "HelloThere" dans un fichier nommé "tiddlers.json"

RenderTiddlerCommand

 

. Utilisez RenderCommand à la place.

(À noter : la commande --rendertiddler est dépréciée. Il est préférable d'utiliser la nouvelle commande --render, plus souple)

Enregistre vers le chemin indiqué le résultat de l'exécution d'un tiddler pour le type de contenu (ContentType) spécifié — par défaut text/html.

Un tiddler modèle (template) peut être indiqué optionnellement. Dans ce cas, le tiddler modèle est exécuté après initialisation de la variable "currentTiddler" avec le tiddler dont le titre est donné en premier paramètre de la commande.

Le nom et la valeur d'une variable supplémentaire peuvent être spécifiés optionnellement.

--rendertiddler <titre> <chemindufichier> [<type>] [<modèle>] [<nom>] [<valeur>]

Par défaut, le nom de fichier est résolu relativement au sous-répertoire output du répertoire de l'édition. La commande --output peut servir à rediriger la sortie vers un répertoire différent.

Les répertoires présents dans le chemin du fichier et qui n'existent pas encore sont créés automatiquement.

Par exemple, la commande ci-dessous enregistre tous les tiddlers correspondant au filtre [tag[done]] vers un fichier JSON de nom output.json, en faisant appel au template prédéfini $:/core/templates/exporters/JsonFile.

--rendertiddler "$:/core/templates/exporters/JsonFile" output.json text/plain "" exportFilter "[tag[done]]"

RenderTiddlersCommand

 

. Utilisez RenderCommand à la place.

(À noter : la commande --rendertiddlers est dépréciée. Il est préférable d'utiliser la nouvelle commande --render, plus souple)

Enregistre vers le chemin indiqué et avec l'extension indiquée — par défaut .html, le résultat de l'exécution d'un ensemble de tiddlers (sélectionnés par un filtre). Le résultat de l'exécution est rendu selon le type de contenu (ContentType) spécifié — par défaut text/html :

--rendertiddlers '<filtre>' <modèle> <chemindurépertoire> [<type>] [<extension>] ["noclean"]

Par exemple :

--rendertiddlers '[!is[system]]' $:/core/templates/static.tiddler.html ./static text/plain

Par défaut, le nom de fichier est résolu relativement au sous-répertoire output du répertoire de l'édition. La commande --output peut servir à rediriger la sortie vers un répertoire différent.

Tous les fichiers du répertoire cible sont supprimés, sauf si le drapeau noclean est spécifié. Le répertoire cible est créé récursivement s'il n'existe pas.

replace Operator

 8 novembre 2015 à 5h21
purposereplace marker with N trailing items
inputa list of items
suffixan integer N, defaulting to 1
parametermarker = the item to be used as a marker
outputre-ordered list of items

Learn more about how to use Filters

replace Operator (Examples)

 8 novembre 2015 à 5h21

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]] Last +[replace[Wednesday]]

[list[Days of the Week]] Last +[replace:2[Tuesday]]

[list[Days of the Week]] [[Yesterday]] [[Today]] [[Tomorrow]] +[replace:3[Tuesday]]

Signaler les bogues

 21 juin 2015 à 20h18

Vous pouvez signaler les bogues et les problèmes rencontrés avec TiddlyWiki sur nos groupes de discussions. Si vous avez un compte GitHub vous pouvez aussi le faire là :

https://github.com/Jermolene/TiddlyWiki5/issues/new

À moins que vous ne soyez un familier de GitHub, nos forums restent, en général, la façon la plus simple de faire part d'un problème.

TiddlyWiki sur GitHub

Nous utilisons le processus de questions sur GitHub pour gérer les rapports de bugs et demandes de fonctionnalités pour TiddlyWiki. Pour maintenir leur efficacité nous nous efforçons d'avoir aussi peu de questions en suspens que possible.

Politique de gestion des questions

Les questions en suspens se traduisent généralement : soit par un rapport de bogue reproductible, soit par une demande de fonctionnalité spécifique. Du point de vue des développeurs du noyau, la liste des questions se présente comme une liste de tâches partagée. Chaque élément de la liste demande un peu d'attention à chaque fois que nous vérifions la liste.

Les questionnements GitHub ne sont pas très efficaces pour gérer les idées qui ne sont pas réalisables immédiatement. Mieux vaut utiliser les forum TiddlyWiki pour les questions ouvertes, ou les discussions spéculatives sur de nouvelles fonctionnalités.

Soumettre une question

Avant de soumettre une question sur GitHub, il est de bon ton de chercher dans les questions existantes pour déterminer si le problème n'aurait pas déjà été posé. Si la recherche ne vous semble pas pratique, ne vous inquiétez pas trop ; Avec GitHub, il est facile de fusionner les questions existantes.

Lorsque vous devez soumettre un problème, gardez en mémoire que nous avons besoin du plus d'informations possibles pour une résolution efficace. Au minimum, veuillez essayer d'inclure :

  • Un titre descriptif
  • Un résumé
  • Étapes à reproduire
  • Comportement attendu
  • Contexte (OS, Navigateur, etc.)

Pensez également à ajouter des captures d'écran si cela peut rendre les choses plus claires.

Il y a beaucoup de bon matériel sur le web au sujet du signalement des bogues :

resolvepath Macro

 21 février 2015 à 22h38

The resolvepath macro takes a relative path and an absolute path. It interprets the former relative to the latter, and returns the absolute equivalent of the former.

Folders in the paths are delimited by /.

The special folder name . denotes the current folder, and .. denotes the parent folder.

If the absolute path indicates a folder, it needs to end with /. Anything after the final / is treated as an arbitrary filename within the intended path, and is discarded.

If no absolute path is supplied, the relative path is returned unchanged, except that anything after the final / is discarded.

The return value is a path, but does not end with /.

Parameters

source
the relative path
root
the absolute path

Exemples

resolvepath Macro (Examples)

 21 février 2015 à 18h34

<<resolvepath "./backup" "http://example.com/store.php">>
<<resolvepath "backup" "http://example.com/store.php">>
<<resolvepath "../backup" "http://example.com/store.php">>
<<resolvepath "../jpg/Motovun_Jack.jpg" "http://example.com/resources/images/png/">>
<<resolvepath "../jpg/../png/Motovun_Jack.png">>
<<resolvepath "jpg/Motovun_Jack.jpg">>

Resources

 3 juin 2016 à 5h39

Voici quelques sites contenant des ressources créées par la communauté TiddlyWiki, pour vous aider à tirer le meilleur de TiddlyWiki : plugins, macros etc. N'hésitez pas à proposer de nouvelles ressources via GitHub, Twitter ou en postant sur les groupes de discussion TiddlyWiki.

rest Operator

 3 février 2015 à 19h08
purposediscard the first N input titles
inputa selection of titles
parameterN = an integer, defaulting to 1
outputall but the first N input titles

Learn more about how to use Filters

butfirst and bf are synonyms for rest.

Examples

rest Operator (Examples)

 26 février 2022 à 4h33

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]rest[]]

[list[Days of the Week]rest[0]]

[list[Days of the Week]rest[3]]

Z Y X W V U T S R Q P O +[rest[5]]

Résumé Builder Edition

 2 juin 2016 à 6h15

The Résumé Builder edition of TiddlyWiki gets you started with a simple way to create a professional resume that you can save to the web or print.

https://tiddlywiki.com/editions/resumebuilder/

RevealWidget

127.0.0.1 25 janvier 2015 à 18h06

Introduction

The reveal widget hides or shows its content depending upon the value of a state tiddler. The type of the widget determines the condition for the content being displayed:

  • type=match: the content is displayed if the state tiddler matches a specified value
  • type=nomatch: the content is displayed if the state tiddler doesn't match a specified value
  • type=popup: the content is displayed as a popup as described in the PopupMechanism

Content and Attributes

The content of the <$reveal> widget is displayed according to the rules given above.

AttributeDescription
stateThe title of the tiddler containing the state
typeThe type of matching performed: match, nomatch or popup
textThe text to match when the type is match and nomatch
positionThe position used for the popup when the type is popup. Can be left, above, aboveright, right, belowleft or below
defaultDefault value to use when the state tiddler is missing
animateSet to "yes" to animate opening and closure (defaults to "no")
retainSet to "yes" to force the content to be retained even when hidden (defaults to "no")

Retaining the content when hidden can give poor performance since the hidden content requires refresh processing even though it is not displayed. On the other hand, the content can be revealed much more quickly. Note that setting animate="yes" will also force retain="yes".

Examples

Simple content reveal

Here's a simple example of showing and hiding content with buttons:

<$button set="$:/state/SampleReveal1" setTo="show">Show me</$button>
<$button set="$:/state/SampleReveal1" setTo="hide">Hide me</$button>

<$reveal type="match" state="$:/state/SampleReveal1" text="show">

! This is the revealed content
And this is some text

</$reveal>

Affichera ceci :

"Slider"

A slider appears as a single button that can be used to toggle the display of the contained content.

<$reveal type="nomatch" state="$:/state/SampleReveal2" text="show" animate="yes">

<$button set="$:/state/SampleReveal2" setTo="show">Show me</$button>

</$reveal>
<$reveal type="match" state="$:/state/SampleReveal2" text="show" animate="yes">

<$button set="$:/state/SampleReveal2" setTo="hide">Hide me</$button>

! This is the revealed content
And this is some text

</$reveal>

Affichera ceci :

Popup

Here is a simple example of a popup built with the RevealWidget:

<$button popup="$:/SamplePopupState">Pop me up!</$button>

<$reveal type="popup" state="$:/SamplePopupState">
<div class="tc-drop-down">

! This is the popup
And this is some text

</div>
</$reveal>

Affichera ceci :

reverse Operator

 3 février 2015 à 19h08
purposereverse the order of the input titles
inputa selection of titles
parameternone
outputthe input, in reverse order

Learn more about how to use Filters

reverse Operator (Examples)

 23 janvier 2015 à 21h27

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]reverse[]]

Rice Pudding

 6 octobre 2020 à 19h12

This is a sample shopping list item for the Shopping List Example

Feuille de route

 31 mai 2015 à 20h10

Même si TiddlyWiki n'est plus en version béta, il y a plusieurs évolutions de prévues pour les mois à venir :

  • Remédier aux vestiges de TiddlyWikiClassic
  • Un format de fichier TiddlyWiki (pour éviter les noms d'attributs illégaux)
  • Des Alias (titres alternatifs pour les tiddlers)
  • Chercher et remplacer
  • Prise en compte du renommage d'un Tiddler
  • Infobulles étendues, incorporant une prévisualisation
  • Augmenter les raccourcis clavier
  • Accès au clavier étendu dans l'éditeur de texte
  • Éditeur de liste par glisser-déposer
  • Recherche sélective selon les titres, les contenus ou les champs
  • Notation Mathématiques

Se reporter aussi à la liste des problèmes sur GitHub : https://github.com/Jermolene/TiddlyWiki5

round Operator

 13 juin 2019 à 9h46
purposerounds a list of numbers to the nearest integer
inputa selection of titles
outputrounds each of the input numbers to the nearest integer

Learn more about how to use Filters

Depuis : 5.1.20 See Mathematics Operators for an overview.

Examples

round Operator (Examples)

 13 juin 2019 à 9h46

[[1.6]round[]]

[[-1.6]round[]]

=-1.2 =-2.4 =3.6 =4.8 =5.1 +[round[]]

Mode Sans Échec

 17 juin 2015 à 8h29

Introduction

Le Mode Sans Échec permet de désactiver la plupart des personnalisations de TiddlyWiki. Il est nécessaire car certaines personnalisations incorrectes de TiddlyWiki peuvent le rendre inutilisable. Dans un cas particulier, certaines personnalisations échouaient lors du passage à une nouvelle version du noyau de TiddlyWiki (notamment lors de la version beta).

Activer le Mode Sans Échec

Le Mode Sans Échec est activé en faisant précéder le lien URL de TiddlyWiki dans le navigateur par la chaine #:safe. Par exemple :

https://tiddlywiki.com/#:safe

Comment fonctionne le Mode Sans Échec

Le Mode Sans Échec déclenche 2 modifications :

  • Tous les plugins sont momentanément désactivés. Vous pouvez alors utiliser le control panel pour désactiver des plugins.
  • Les tiddlers qui modifient les tiddlers shadows sont renommés avec le préfixe SAFE: , ce qui a pour effet de restaurer les tiddlers shadows sous-jacents.

Un tiddler rapport est affiché pour vous permettre d'examiner les tiddlers renommés.

Sainte Anastasie.png

 31 mai 2015 à 20h02

sameday Operator

 3 février 2015 à 19h09
purposefilter the input by date
inputa selection of titles
suffixF = the name of a date field, defaulting to modified
parameterD = a date, in the format YYYYMMDD
outputthose input tiddlers in which field F has the value D, ignoring time

Learn more about how to use Filters

If D is not a valid date, the output is empty.

D may include a time of day, but this is ignored.

Examples

sameday Operator (Examples)

 24 janvier 2015 à 10h17

[sameday[20140410]]
→ tiddlers modified on 10 April 2014

[sameday:created[20140410]]
→ tiddlers created on 10 April 2014

Sample Headings 1,2,3

 17 novembre 2021 à 2h46

This is a Level 1 Heading

This is a paragraph.

This is written as a Level 3 heading

This is written as a Level 4 heading

This is written as a Level 5 heading

This is a Level 2 heading

This is written as a Level 4 heading

This is written as a Level 5 heading

This is written as a Level 6 heading

Sample Headings 3,4,5

 17 novembre 2021 à 2h46

This is written as a Level 3 heading

This is written as a Level 4 heading

This is written as a Level 5 heading

Sample Headings 4,5,6

 17 novembre 2021 à 2h46

This is written as a Level 4 heading

This is written as a Level 5 heading
This is written as a Level 6 heading

Sample Tiddler Template

 18 mai 2023 à 13h53

My name is Jeremy and my age is 21.

SampleModal

 17 novembre 2021 à 22h43

Hello,

This is an example modal containing the following message:

SampleNotification

 12 septembre 2014 à 15h56

This is a notification!

SampleTabFour

 11 décembre 2014 à 13h46

Voici le quatrième de nos onglets d'exemple.

SampleTabOne

 11 décembre 2014 à 13h46

Voici le premier de nos onglets d'exemple.

SampleTabThree

 11 décembre 2014 à 13h48

Voici le troisième de nos onglets d'exemple.

SampleTabTwo

 11 décembre 2014 à 13h46

Voici le deuxième de nos onglets d'exemple.

sampletag1

 

This is sampletag1.

sampletag2

 

This is sampletag2.

SampleTemplate

 6 mai 2023 à 18h05

thisTiddler: SampleTemplate

currentTiddler: SampleTemplate

SampleTiddlerFirst

 17 novembre 2021 à h36

This is a test tiddler called SampleTiddlerFirst.

SampleTiddlerSecond

 17 novembre 2021 à h37

This test tiddler is called SampleTiddlerSecond.

SampleTiddlerThird

 17 novembre 2021 à h37

This tiddler SampleTiddlerThird is the third test tiddler.

SampleWindowTemplate

 27 février 2022 à 21h13
Name:
Rank:

Variable 'something' contains:

Exemple d'assistant

 20 juin 2015 à 9h59

Voici un dialogue d'assistant modale, mémorisé dans le tiddler Exemple d'assistant.

Vous pouvez .

Exemple d'assistant 2

 20 juin 2015 à 10h01

Voici un autre dialogue d'assistant modale, mémorisé dans le tiddler Exemple d'assistant 2.

Vous pouvez .

Saturday

 16 novembre 2021 à 22h11

This example tiddler is used to illustrate some of the Filter Operators.

SaveCommand

 19 septembre 2017 à 14h18

Enregistre des tiddlers individuels identifiés par un filtre, soit tels quels, soit dans un format binaire dans les fichiers spécifiés.

--save <filtre-des-tiddlers> <filtre-des-noms-de-fichiers>
  • filtre-des-tiddlers: Un filtre identifiant les tiddlers à enregistrer
  • filtre-des-noms-de-fichiers: Filtre optionnel pour transformer les titres de tiddlers en chemins de fichiers. À défaut, le filtre utilisé est [is[tiddler]], qui utilise le titre inchangé du tiddler comme nom de fichier

Par défaut, le nom de fichier est résolu relativement au sous-répertoire output du réepertoire de l'édition. La commande --output peut servir à diriger les sorties vers un répertoire différent.

Notes :

  • Les éventuels fichiers présents dans le répertoire de sortie ne sont pas supprimmés
  • Les répertoires absents dans le chemin de fichier sont créés automatiquement.
  • Lorsqu'un tiddler contient des espaces dans le titre, prendre garde à utiliser aussi bien les guillemets nécessaires au shell et les doubles crochets droits propres à TiddlyWiki : --render "[[Motovun Jack.jpg]]"
  • Le filtre des noms de fichier est évalué après avoir initialisé l'élément d'entrée avec le titre du tiddler en cours d'exécution, permettant ainsi d'utiliser le titre comme base de calcul pour le nom de fichier. Par exemple [encodeuricomponent[]addprefix[static/]] applique un encodage d'URI à chaque titre, puis ajoute le préfixe static/
  • La commande --save remplace de manière plus souple les deux commandes --savetiddler et --savetiddlers, qui sont du même coup obsolètes.

Exemples :

  • --save "[!is[system]is[image]]" "[encodeuricomponent[]addprefix[tiddlers/]]" – enregistre tous les tiddlers images non-système comme des fichiers du sous-répertoire "tiddlers" nommés après encodage URL des titres.

SaveTiddlerCommand

 18 décembre 2013 à 12h16

. Utilisez SaveCommand à la place.

(À noter : la commande --savetiddler est dépréciée. Il est préférable d'utiliser la nouvelle commande --save, plus souple)

Enregistre un tiddler texte ou binaire dans le fichier spécifié, sous sa forme brute.

--savetiddler <titre> <chemindufichier>

Par défaut, le nom de fichier est résolu relativement au sous-répertoire output du répertoire de l'édition. La commande --output peut servir à rediriger la sortie vers un répertoire différent.

Les répertoires présents dans le chemin du fichier et qui n'existent pas encore sont créés automatiquement.

SaveTiddlersCommand

 9 juin 2014 à 13h16

. Utilisez SaveCommand à la place.

(À noter : la commande --savetiddlers est dépréciée. Il est préférable d'utiliser la nouvelle commande --save, plus souple)

Enregistre un groupe de tiddlers vers le chemin spécifié, sous leur forme brute, texte ou binaire.

--savetiddlers <filtre> <chemin-de-répertoire> ["noclean"]

Par défaut, le répertoire de sortie est calculé relativement au sous-répertoire output du répertoire de l'édition. La commande --output peut servir à diriger la sortie vers un répertoire différent.

Les fichiers présents dans le répertoire de sortie sont supprimés avant que soient enregistrés les fichiers des tiddlers spécifiés par le filtre. Pour empêcher cette suppression, ajouter le drapeau noclean.

Les éventuels répertoires manquants dans le chemin spécifié sont créés automatiquement.

SaveTrail Plugin

 28 mars 2017 à 18h39

This plugin causes TiddlyWiki to continuously download (as a JSON file) the contents of any tiddler that is manually changed by any of several means:

  • Confirming an edit
  • Deleting tiddlers
  • Imports
  • Renames/relinks
  • Optionally, typing in draft tiddlers can trigger a download

Where appropriate, separate 'before' and 'after' files are downloaded. Configured correctly, the browser will download the files silently in the background, and they can be used as a backup in case of accidental data loss.

SaveWikiFolderCommand

 14 avril 2019 à 12h01

Depuis : 5.1.20 Enregistre le wiki courant sous la forme d'un dossier wiki, comprenant les tiddlers, les plugins et les informations de configuration :

--savewikifolder <chemindudossierwiki> [<filtre>]
  • Le dossier wiki cible doit être vide ou inexistant
  • Le filtre spécifie les tiddlers à inclure. Il est optionnel et vaut par défaut [all[tiddlers]]
  • Les plugins appartenant à la bibliothèque officielle de plugins sont remplacés par des références à ces plugins dans le fichier tiddlywiki.info
  • Les plugins sur mesure sont déballés dans leur propre dossier

On utilise typiquement cette commande avec la commande --load pour convertir un fichier TiddlyWiki HTML en un dossier wiki :

tiddlywiki --load ./monwiki.html --savewikifolder ./mondossierwiki

Enregistrer les modifications

 2 avril 2022 à 11h58

Méthodes disponibles pour enregistrer les modifications avec TiddlyWiki :

Plateforme





Navigateur internet






Enregistrer sur serveur PHP

 17 avril 2022 à 15h38

L'enregistreur intégré TiddlySpot peut aussi être utilisé pour enregistrer vos modifications vers un simple script PHP que vous pouvez exécuter sur la plupart des hébergeurs PHP.

Ce code n'a pas été mis à jour depuis de nombreuses années. Si vous rencontrez des difficultés, considérez l'utilisation de TW Receiver à la place

  1. Téléchargez une copie de TiddlyHome_0.1.2.zip' sur https://code.google.com/archive/p/bidix/downloads
  2. Décompressez l'archive ZIP
  3. Extrayez une copie de store.php du sous-répertoire _th\lib
  4. Éditez votre copie de store.php pour ajouter vos nom d'utilisateur et mot de passe. Trouvez la ligne $USERS = array( 'UserName1'=>'Password1', etc) et remplacez Username1 et Password1 par vos propres nom d'utilisateur et mot de passe.
    • Assurez vous de laisser intacts le code et la ponctuation, comme les simple cotes (')
  5. Enregistrez le fichier
  6. A l'aide de FTP ou de votre interface web, téléversez le fichier store.php sur votre serveur. Assurez-vous que le nom de fichier est correct.
    • Si tout est conforme vous devriez pouvoir accéder au fichier dans votre navigateur (p.ex. http://example.com/store.php)
  7. Dans TiddlyWiki, affichez l'onglet Sauvegarde du panneau de contrôle et saisissez les informations suivantes :
    • Votre nom d'utilisateur en tant que nom de wiki
    • Votre mot de passe
    • l'URL du fichier store.php (pas l'URL du wiki, mais l'URL complète d'accès au fichier store.php)

L'onglet Sauvegarde du panneau de contrôle inclut les paramètres suivants :

NomDescription
URL du serveurURL complète du fichier store.php sur votre serveur
Nom du fichier téléverséLe nom de fichier utilisé pour enregistrer le TiddlyWiki (index.html par défaut)
Dossier de téléversementLe chemin relatif entre store.php et le dossier d'enregistrement du fichier
Dossier de sauvegardeLe chemin relatif entre store.php et le dossier de sauvegarde

Note sur la taille maximale

Quand la taille de votre fichier TW augmentera, vous devrez modifier le fichier .htaccess (ou htaccess selon le système) pour augmenter la taille maximale de téléversement et/ou de POST. Vérifiez avec votre hébergeur les réglages possibles. Assurez-vous de disposer de sauvegardes avant d'expérimenter avec les réglages. Exemple de réglages :

php_value upload_max_filesize 4M
php_value post_max_size 6M

Note sur les messages d'erreur possibles

Si vous rencontrez un message d'erreur concernant split(), vous pourriez avoir à remplacer les appels à split() dans store.php par la fonction explode.

Enregistrer sur Android

 2 avril 2022 à 11h58

Les applications Tiddloid et Tiddloid Lite sont des applis Android qui permettent d'éditer des wikis et d'enregistrer les changements au format HTML de TiddlyWiki.

Fonctionnalités

  • Créez des nouveaux wikis à partir de la dernière version de TiddlyWiki publiée sur internet
  • Importez des TiddlyWiki existants stockés sur la mémoire interne de l'appareil. (TiddloidLite permet aussi le stockage sur carte SD externe)
  • Copiez et personnalisez des TiddlyWiki intéressants à partir d'internet (fonctionne avec TW5 uniquement)
  • Détection de TiddlyWiki
  • Les TiddlyWiki stockés localement sont mis à jour en même temps que l'enregistrement des modifications dans les TiddlyWiki importés dans l'appli.
  • Système de sauvegarde compatible avec celui de TiddlyDesktop
  • Raccourcis vers vos wikis sur la page d'accueil d'Android
  • TiddloidLite est compatible avec le stockage en nuage comme GDrive ou OneDrive.

Notes

  • Tiddloid Lite fonctionne mieux sur les appareils munis d'Android Q ou ultérieur. Il permet aussi le stockage en nuage dans GDrive ou OneDrive, alors que Tiddloid conserve la compatibilité avec TiddlyWiki Classic. Pour en apprendre plus sur les différences entre Tiddloid et Tiddloid Lite, consultez la page d'accueil de Tiddloid.
  • Pour que l'importation fonctionne correctement, conservez l'extension .html ou .htm de vos fichiers TiddlyWiki.

Enregistrer avec l'API File System Access du navigateur

 2 avril 2022 à 11h58

TiddlyWiki peut enregistrer les modifications sur le système de fichiers sans télécharger un nouveau fichier à chaque fois en utilisant l'API File System Access des navigateurs.

Cette API n'est pas complètement standardisée, cette méthode d'enregistrement est par conséquent assez expérimentale.

L'API utilisée par cet enregistreur fonctionne avec la plupart des navigateurs basés sur Chromium. Voir caniuse pour les informations actualisées sur sa disponibilité dans les navigateurs.

Saving on Browser with TiddlyStow

 3 avril 2023 à 19h30

Link: https://github.com/btheado/tiddlystow

Tiddlystow saves TiddlyWiki files locally using the browser file system API (Chrome-based browsers currently). This is a simple web page for loading a local TiddlyWiki file and storing it back to the same local file requiring no plugins or extensions.

Enregistrer sur iPad/iPhone

 2 avril 2022 à 11h58

L'application Quine 2 pour iPad/iPhone permet d'éditer et d'enregistrer les modifications de wikis TiddlyWiki5 sur iOS. Vous pouvez la télécharger ici.

Instructions d'utilisation :

  1. Ouvrez Quine 2
  2. Tapez sur le bouton + de la barre d'outils pour créer et ouvrir un nouveau TiddlyWiki
  3. Dans la liste des fichiers tapez sur un fichier TiddlyWiki existant pour l'ouvrir
  4. Éditez le TiddlyWiki comme d'habitude, et enregistrez-le normalement avec Autosave ou le bouton enregistrer
  5. Utilisez le bouton de barre d'outil Documents à gauche pour fermer un TiddlyWiki ouvert
  • Quine 2 fonctionne nativement sous iOS avec des fichiers locaux ou stockés dans iCloud
  • Quine 2 permet aussi d'ouvrir, modifier et enregistrer des fichiers TiddlyWiki stockés chez d'autres fournisseurs de service Cloud
  • Quine 2 permet de suivre des liens Wikitexte embarqués ou des liens canoniques externes vers des fichiers accessibles comme sur le Cloud via des services compatibles avec le folder level sharing
    • Parmi les applications compatibles, citons Secure Shellfish et Working Copy. La plupart des services ne permet toutefois pas aux applis comme Quine 2 d'utiliser ce type de liens
    • Si vous voulez activer cette fonctionnalité pour les services « collaboratifs », basculez le commutateur Autoriser la sélection de dossiers pour les liens hors bac-à-sable dans les paramètres iOS de Quine 2

Notez que Quine 2 est publié indépendamment de TiddlyWiki

Enregistrer avec TiddlyDesktop

 2 avril 2022 à 11h58

Regardez la Vidéo d'introduction à TiddlyDesktop !

  1. Installez la dernière version de TiddlyDesktop disponible sur https://github.com/TiddlyWiki/TiddlyDesktop/releases
  2. Ouvrez TiddlyDesktop
  3. Utilisez le bouton de navigation pour ouvrir des fichiers TiddlyWiki
  4. Enregistrez les modifications dans TiddlyWiki comme d'habitude

Enregistrer sur TiddlyHost

 2 avril 2022 à 11h58

TiddlyHost.com est un service d'hébergement pour TiddlyWiki créé par Simon Baird. Après vous être inscrit et avoir confirmé votre courriel vous pourrez créer des « sites » (c-à-d des TiddlyWiki), que vous pourrez enregistrer en ligne. Les sites peuvent être privés ou publics, et vous pouvez éventuellement les référencer, les taguer et rechercher sur le Hub TiddlyHost où ils seront accessibles aux autres.

Contrairement à TiddlySpot, TiddlyHost est sécurisé, open source, et compatible avec TiddlyWiki5. Il permet aussi de téléverser des fichier TiddlyWiki existants, est compatible avec TiddlyWikiClassic, et vous permet de revendiquer la propriété de vos sites TiddlySpot . Pour plus d'informations lisez la FAQ et la page A propos.

Enregistrer sur Tiddlyspot

 2 avril 2022 à 11h58

Attention ! TiddlySpot est passé en mode maintenance et ne permet plus de créer de nouveau site. Vous pouvez maintenant utiliser TiddlyHost à la place, un nouveau service proposé par le créateur de TiddlySpot.


TiddlySpot est un service d'hébergement gratuit pour les documents TiddlyWiki, mis à disposition par Simon et Daniel Baird. Le plus simple pour commencer est de créer un nouveau wiki sur http://tiddlyspot.com – par défaut, vous obtiendrez la dernière version de TiddlyWiki Classic.

Vous pouvez publier un document TiddlyWiki depuis votre disque local vers TiddlySpot en suivant les étapes ci-dessous :

  1. Demandez la création d'un nouveau wiki sur http://tiddlyspot.com/, et rappelez-vous son nom et son mot de passe
  2. Ouvrez le fichier TiddlyWiki conservé localement dans votre navigateur
  3. Remplissez le nom et le mot de passe TiddlySpot dans l'onglet Sauvegarde du panneau de contrôle
  4. Cliquez sur le bouton « Enregistrer les modifications » dans la barre latérale. Vous devriez voir un message de confirmation en haut à droite de la barre latérale indiquant Wiki enregistré. Cela peut durer plusieurs secondes si vous avez une connexion lente ou si vous travaillez avec un wiki volumineux.
  5. Ouvrez votre wiki TiddlySpot à l'URL http://<nom-du-wiki>.tiddlyspot.com/

Notez que lorsque vous utilisez TiddlySpot, votre mot de passe est envoyé non-crypté. Extrait de http://faq.tiddlyspot.com/ :

Tiddlyspot est-il sûr ?

Non. Tiddlyspot n'utilise pas SSL/https. Votre mot de passe est envoyé en clair lorsque vous enregistrez votre wiki et au moment où vous vous authentifiez pour accéder à un site privé. Autrement dit, votre Tiddlyspot est ouvert aux renifleurs de paquets et votre mot de passe peut être découvert par un tiers malveillant. De même, vos données sont transmises non -cryptées lorsque vous vous affichez votre site, même s'il s'agit d'un site privé. C'est pourquoi nous vous prions instamment de ne pas conserver d'informations sensibles comme des données bancaires dans votre Tiddlyspot et de ne pas utiliser un mot de passe que vous utilisez pour d'autres sites plus sensibles.

Problèmes lors de la sauvegarde sur Tiddlyspot

Si vous rencontrez l'erreur suivante au moment de déposer un nouveau TiddlyWiki (ou mis à niveau) vers Tiddlyspot à partir d'un fichier local :

Error while saving:

Error:NS_ERROR_DOM_BAD_URI: Access to restricted URI denied

L'opération tombe sous le coup d'une restriction de sécurité propre à Firefox. En attendant que cela puisse être résolu, nous suggérons d'utiliser Chrome pour effectuer cette opération :

    1. Utilisez Chrome pour ouvrir le document TiddlyWiki local que vous voulez déposer sur TiddlySpot et suivez les étapes 1 à 5 ci-dessus
    2. Après avoir vérifié que le TiddlyWiki hébergé sur TiddlySpot se chargeait correctement dans Chrome, vous devriez à nouveau pouvoir y accéder, le modifier et l'enregistrer avec TiddlyFox
  • Lorsque vous aurez réussi à déposer une première fois votre document local, les modifications et enregistrements suivants de la version en ligne hébergée sur Tiddlyspot devraient fonctionner avec le navigateur récent de votre choix.
    • N'oubliez pas de remplir le nom du wiki TiddlySpot et son mot de passe dans l'onglet Sauvegarde de votre panneau de contrôle pour chaque nouveau navigateur que vous souhaitez utiliser pour enregistrer vos modifications.
  • Voir aussi : Mise à niveau

Enregistrer avec TidGi Desktop

 2 avril 2022 à 11h58

Les détails sur les choix de conception de TidGi sont disponibles ici : Lisez-moi !. En voici un bref résumé :

  1. TidGi est basé sur TiddlyWiki sur Node.js alors que TiddlyDesktop se concentre sur les wikis mono-fichier HTML
  2. TidGi intègre un script de synchronisation de sauvegarde git-sync
  3. TidGi fournit des fonctionnalités basées sur electron, telles qu'une mini-fenêtre de menu et une console de ligne de commande.

Installation

  1. Installez la dernière version de TidGi Desktop disponible sur https://github.com/tiddly-gittly/TidGi-Desktop/releases/latest
  2. Ouvrez TidGi
  3. Créez un nouveau wiki, ou ouvrez un dossier hébergeant un wiki nodejs existant
  4. Les modifications sont enregistrées automatiquement, et vous pouvez éventuellement configurer TidGi pour les synchroniser sur github toutes les 30 minutes

Enregistrer avec un service Git

 2 avril 2022 à 11h58

TiddlyWiki peut enregistrer les modifications d'un wiki mono-fichier directement dans un dépôt GitHub.

L'enregistrement vers un service Git se configure dans le Panneau de contrôle, dans l'onglet Enregistrement. Selon le service cible souhaité, choisissez parmi les onglets Enregistreur GitHub, Enregistreur GitLab ou Enregistreur ~Gitea. Les paramètres suivants sont disponibles :

  • Nom d'utilisateur - (obligatoire) le nom d'utilisateur du compte à utiliser sur le service Git choisi
  • Mot de passe - (obligatoire) le mot de passe, le jeton OAUTH ou le personal access token (jeton d'accès personnel) associé. Notez que GitHub a déprécié l'authentification par mot de passe, les methodes d'authentification permises sont décrites dans la documentation de l'API.
  • Dépôt cible - (obligatoire) le nom du dépôt à utiliser. Il faut préciser le nom de l'utilisateur suivi du nom du dépôt, séparés par un /, par exemple Jermolene/TiddlyWiki5
  • Branche - (optionnel) le nom de la branche dans laquelle enregistrer le wiki. Valeur par défaut : main dans GitHub et master dans GitLab.
  • Chemin - (optionnel) le chemin pour atteindre le fichier cible. Valeur par défaut : /
  • Nom du fichier cible - (obligatoire) le nom de fichier de votre wiki

Notes :

  • Le mot de passe ou le jeton d'accès sont enregistrés dans le stockage local du navigateur de façon persistante. Assurez-vous de nettoyer le mot de passe si vous utilisez une machine publique ou partagée. L'utilisation d'un jeton d'accès personnel pour l'authentification offre une couche de sécurité supplémentaire : si le jeton est compromis, il peut être révoqué sans réinitialiser le mot de passe principal du compte.

Enregistrer avec un serveur Ruby minimal

 2 avril 2022 à 11h58

Un serveur Ruby minimal qui utilise Webrick. Il présente les fichiers du dossier courant et permet l'enregistrement.

Lancez le script, puis naviguez vers l'adresse http://localhost:8000 pour voir le contenu du dossier choisi, et cliquez sur le fichier HTML de votre wiki.

Le script est disponible ici :

https://gist.github.com/jimfoltz/ee791c1bdd30ce137bc23cce826096da

Saving via a Minimal Web Server

 2 mars 2023 à 5h59

A local mini binary server for TiddlyWiki5 that saves and backups wikis and uploads files for TiddlyWiki, inspired by tw5-server.rb .

tw5server provides features of:

  • Server for TiddlyWiki5, as well as other files (e.g. images used in TW5 [img[images/*.png]]);
  • Easy to save wiki via browsers;
  • Backup wiki in compress format (.gz), to save disk space;
  • Auto clean backups: keep one newest per previous month, keep all backups in current month.
  • Upload files/images to server via pressing button or drag-and-drop, for use in tiddlywiki as external links.
  • Offer binary executable for Linux, macos, Android and windows.

Download executable binary at the github.com tw5-server.

Usage

tw5server -a:192.168.0.10 -p:8000 -d:./ -b:backup

-h usage help
-a address, defautl localhost
-p port, default 8000
-d directory to servering, default `current dir`
-b backup directory name, default `backup`
-l log saving messages to stdout

Backups auto-clean strategy:
Keep all backups in current month, keep only the newest one for previous months.

In Unix/Linux, maybe first chmod +x tw5server), then run it. For Android version, run it in Termux, or some other terminals.

Then go to http://localhost:8000 (or other address:port specified in command) in your web browser, and click on your wiki html file.

Enregistrer avec WebDav

 2 avril 2022 à 11h58

Lorsqu'il est hébergé sur un serveur WebDAV, un fichier TiddlyWiki créé après 2016 enregistre automatiquement ses modifications en HTTP. Si vous avez créé votre wiki avant le 16 février 2016 vous devez le mettre à jour pour activer WebDAV.

Serveurs légers et multi-plateformes

Solutions légères, portables et faciles d'emploi :

Windows

OSX

  • WebDavNav Server sur l'App store du Mac.

Android

  • RCX est un gestionnaire de fichiers open source pour Android basé sur rclone. Il est disponible aussi bien sur F-Droid que Google Play. Grâce à son serveur WebDAV intégré, il permet d'éditer les wikis que vous gardez dans la poche, et de les partager sur le réseau local.

Serveurs

De nombreux serveurs NAS ou Subversion disposent de WebDAV nativement. Le paramétrage de votre propre serveur imposera toutefois quelques efforts :

Hébergement gratuit

Plusieurs hébergeurs WebDAV testés (box.com, swissdisk.com) ne permettent pas l'accès aux fichiers HTML dans un navigateur, ils ne peuvent donc pas être utilisés pour TiddlyWiki. Néanmoins, le serveur multimédia GMX (www.gmx.net) a été déclaré compatible WebDav avec un compte gratuit.

Koofr

Koofr est un service cloud qui met en avant le respect de la vie privée. Pour utiliser leur service WebDav, créez un compte sur koofr.eu, puis ouvrez les preferences sur leur appli web, puis password dans le menu à gauche. Descendez jusqu'à la rubrique App Passwords. Choisissez un nom comme tiddlywiki et générez un mot de passe. Contrairement à leurs recommandations, gardez en sécurité une copie du mot de passe. Téléversez votre fichier dans un dossier sur leur site, si possible sans espace dans le chemin d'accès. Ensuite, dans le navigateur saisissez l'adresse du fichier, qui ressemblera à :

https://app.koofr.net/dav/Koofr/monfichier.html

A ce moment-là, une demande d'authentification apparaîtra. Utilisez votre adresse mail de connexion et le mot de passe que vous venez de générer.

Vous devriez être en mesure de charger le wiki et d'enregistrer les modifications dedans.

Hébergement payant

pCloud

pCloud est un service cloud qui dispose de serveurs en Europe et aux États-Unis. Lors de l'inscription, vous devez choisir l'emplacement qui vous convient. Ensuite, avec votre navigateur, connectez-vous au service. Utilisez l'interface pour téléversez le fichier auquel vous voulez accéder. Il sera accessible soit sur :

https://webdav.pcloud.com

si vous avez choisi des serveurs aux États-Unis, ou sur :

https://ewebdav.pcloud.com

pour des serveurs en Europe.

Un page de navigation dans les fichiers devrait s'afficher. Sélectionnez votre wiki et ouvrez-le dans le navigateur. Vous devriez pouvoir le modifier et enregistrer les modifications.

Enregistrer avec Polly

 2 avril 2022 à 11h58

Polly est un script Windows écrit en PowerShell utilisé pour restaurer le chemin de fichiers TiddlyWiki sélectionnés, depuis le dossier des téléchargements vers leur emplacement d'origine.

Concrètement, ça devient une nouvelle façon d'enregistrer vos fichiers, mais avec des fonctionnalités supplémentaires :

  • Pas d'exécutable binaire
  • Script lisible par un humain
  • Pas de plugin particulier dans votre fichier TiddlyWiki
  • Pas besoin d'un navigateur en particulier
  • Pas besoin d'extension pour le navigateur
  • Pas besoin de faire tourner nodejs en tâche de fond
  • Taille totale du script décompressé : environ 100 ko
  • Sauvegarde vers des dossiers paramétrables, en tant que fichiers standards ou archives ZIP
  • Capacité de « cloner » des copies supplémentaires vers des dossiers cibles (p.ex. un dossier Dropbox)

Fonctionne partout où PowerShell est disponible, en particulier Windows, Linux et Mac.

https://github.com/Marxsal/polly

Enregistreur HTML5 par défaut

 2 avril 2022 à 11h58

Sauvegarder avec l'enregistreur HTML 5 par défaut

 26 mai 2016 à 14h01

Cette manière d'enregistrer les modifications est assez pénible, car elle requiert une intervention manuelle à chaque enregistrement. Elle a l'avantage de fonctionner avec pratiquement tous les navigateurs tournant sur les ordinateurs de bureaux, et de nombreux navigateurs tournant sur appareils mobiles.

  1. Téléchargez un TiddlyWiki en cliquant sur ce bouton :
    Si le bouton ne fonctionne pas, enregistrez ce lien : https://tiddlywiki.com/languages/fr-FR/empty.html
    Votre navigateur vous demandera peut-être d'accepter explicitement l'enregistrement avant qu'il démarre
  2. Localisez le fichier que vous venez de télécharger
    • Vous pouvez le renommer, mais assurez-vous de conserver l'extension .html ou .htm
  3. Ouvrez le fichier dans votre navigateur
  4. Essayez de créer un nouveau tiddler à l'aide du bouton nouveau tiddler de la barre latérale. Ajouter du contenu dans le tiddler, et cliquez sur le bouton terminé
  5. Enregistrez vos modifications en cliquant sur le bouton enregistrer les modifications de la barre latérale
  6. Votre navigateur téléchargera alors un nouvel exemplaire du wiki, avec vos modifications à l'intérieur
  7. Localisez ce nouveau fichier et ouvrez-le dans votre navigateur
  8. Vérifiez que vos modifications ont correctement été enregistrées

Truc: la plupart des navigateurs peuvent être configurés pour proposer un chemin d'enregistrement à chaque téléchargement. Cela vous permet de sélectionner la version précédente du fichier et ainsi de la remplacer.

Enregistrer avec TiddlyFox

 17 avril 2022 à 15h39

Si vous utilisez Firefox pour Android, reportez-vous aux instructions pour enregistrer avec TiddlyFox sur Android.

  1. Assurez-vous d'avoir une version de Firefox antérieure à 57. TiddlyFox ne fonctionne plus sur les versions 57 et ultérieures. Pour Firefox 57 et au-delà, pensez plutôt à utiliser :
  2. Installez la dernière version de l'extension TiddlyFox à partir de :
  3. Redémarrez Firefox
  4. Téléchargez un TiddlyWiki vide en cliquant sur ce bouton :
  5. Localisez le fichier que vous venez de télécharger
    • Vous pouvez le renommer, mais assurez-vous de conserver l'extension .html ou .htm
  6. Ouvrez le fichier dans Firefox
    • Si vous utilisez TiddlyFox v1.x.x, cliquez OK en réponse à la demande de TiddlyFox d'activer l'enregistrement pour ce fichier
    • Si vous utilisez TiddlyFox v2.x.x cliquez sur l’icône de chat sur un globe bleu pour activer l'enregistrement. Il n'y a pas de demande en v2.0.1.
      • Pour TiddlyFox v2.0.1, vous ne pouvez pas utiliser le mode Navigation Privée, ni activer l'option « Ne jamais conserver l'historique ».
  7. Essayez de créer un nouveau tiddler à l'aide du bouton nouveau tiddler de la barre latérale. Ajouter du contenu dans le tiddler, et cliquez sur le bouton terminé
  8. Enregistrez vos modifications en cliquant sur le bouton enregistrer les modifications de la barre latérale
    • Attendez l'indication jaune Wiki enregistré en haut à droite de la fenêtre
  9. Rafraîchissez la fenêtre du navigateur pour vérifier que vos modifications ont été correctement enregistrées

Enregistrer avec TiddlyFox sur Android

 17 avril 2022 à 15h39

(Vous pouvez aussi regarder le tutoriel vidéo).

  1. Assurez-vous d'avoir installé la dernière version de Firefox pour Android
  2. Installez la dernière version de l'extension TiddlyFox depuis :
  3. Installez aussi cette extension qui vous permettra de sauvegarder le fichier TiddlyWiki localement :
  4. Téléchargez un fichier TiddlyWiki vide en enregistrant ce lien :
    (pour enregistrer le lien, assurez-vous d'avoir installé l'extension "save-link-menus", appuyez quelques secondes sur le lien, puis choisissez "Save link")
  5. Une fois le fichier téléchargé, cliquez dessus depuis la zone de notification ou l'application de gestion des téléchargements
  6. Choisissez d'ouvrir le fichier avec Firefox (et non l'application par défaut proposée par Android)
  7. Cliquez OK en réponse à la demande de TiddlyFox qui vous demande s'il faut activer l'enregistrement pour ce fichier
  8. Essayez de créer un nouveau tiddler à l'aide du bouton nouveau tiddler de la barre latérale. Ajouter du contenu dans le tiddler, et cliquez sur le bouton terminé
  9. Enregistrez vos modifications en cliquant sur le bouton enregistrer les modifications de la barre latérale
    • Attendez l'indication jaune Wiki enregistré en haut à droite de la fenêtre
  10. Rafraîchissez la fenêtre du navigateur pour vérifier que vos modifications ont été correctement enregistrées

Enregistrer avec TiddlyIE

 2 avril 2022 à 11h58
  1. Installez l'extension TiddlyIE depuis :
  2. Redémarrez Internet Explorer. IE vous demandera si vous voulez activer l'extension TiddlyIE.
    Il se peut aussi que vous ayez à activer le Microsoft Scripting Runtime
  3. Téléchargez un TiddlyWiki vide en enregistrant ce lien :
  4. Localisez le fichier que vous venez de télécharger
    • Vous pouvez le renommer, mais assurez-vous de conserver l'extension .html ou .htm
  5. Ouvrez le fichier dans Internet Explorer
  6. Essayez de créer un nouveau tiddler à l'aide du bouton nouveau tiddler de la barre latérale. Ajouter du contenu dans le tiddler, et cliquez sur le bouton terminé
  7. Enregistrez vos modifications en cliquant sur le bouton enregistrer les modifications de la barre latérale. Internet Explorer vous demandera votre assentiment pour enregistrer le fichier localement en vous présentant un dialogue Enregistrer sous....
  8. Rafraîchissez la fenêtre du navigateur pour vérifier que vos modifications ont été correctement sauvegardées.

Enregistrer avec TW Receiver

 2 avril 2022 à 11h58

TW Receiver est un plugin TiddlyWiki et un script PHP utilisés pour enregistrer sur un serveur PHP.

Parmi ses fonctionnalités, on trouve la sauvegarde automatisée, la protection d'écriture sur instance figée, l'authentification par challenge de hachage (sécurité améliorée), et la signature d'intégrité des données (sécurité améliorée).

  • Visitez TW-Receiver pour accéder à plus d'informations, au plugin et à son code.

SavingMechanism

 9 juillet 2016 à 12h27

The SavingMechanism is the mechanism by which TiddlyWiki generates a new HTML file and stores it. It is different from the sync mechanism, which is concerned with synchronising changes to individual tiddlers back to a server (see https://tiddlywiki.com/dev/#SyncAdaptorModules for more details).

The following steps are involved:

  1. The saver mechanism uses the filter defined in $:/config/SaverFilter to specify which modified tiddlers trigger the dirty state for the wiki. (The dirty state is reflected in the red colouring of the "save changes" button in the sidebar).
  2. The ButtonWidget is used to generate a tm-save-wiki message to trigger the save operation
  3. The optional parameter for the message specifies the template that will be used for generating the HTML file, defaulting to $:/core/save/all
  4. The template includes a variable assignment that specifies a filter to select the tiddlers that should be included in the saved file. It then transcludes the main page template $:/core/templates/tiddlywiki5.html
    • The template includes a reference to $(publishFilter)$ that allows the filter to be customised via a global variable
  5. The tm-save-wiki handler renders the template to generate the HTML file
  6. The message handler chooses the highest priority "saver" module that can handle saving the file

Adaptabilité

 2 juin 2015 à 11h36

Vous pourriez vous demander si l'architecture de TiddlyWiki en tant que SinglePageApplication serait adaptée pour de gros volume de d'information. En réalité, les utilisateurs de TiddlyWiki travaillent souvent avec des fichiers de 20 or 30 mégaoctets sans problème - et des expérience traitant des gigaoctets ont aussi été couronnées de succès.

Scripts for TiddlyWiki on Node.js

 15 octobre 2014 à 17h53

Script Files

The TiddlyWiki5 repository contains several scripts in the bin folder that you can use to automate common tasks, or as a useful starting point for your own scripts. See Scripts for building tiddlywiki.com for details of the scripts used to build and release https://tiddlywiki.com/.

All the scripts expect to be run from the root folder of the repository.

serve: serves tw5.com

./bin/serve.sh -h
./bin/serve.sh [edition dir] [username] [password] [host] [port]

Or:

./bin/serve.cmd -h
./bin/serve.cmd [edition dir] [username] [password] [host] [port]

This script starts TiddlyWiki5 running as an HTTP server, defaulting to the content from the tw5.com-server edition. By default, the Node.js serves on port 8080. If the optional username parameter is provided, it is used for signing edits. If the password is provided then HTTP basic authentication is used. Run the script with the -h parameter to see online help.

To experiment with this configuration, run the script and then visit http://127.0.0.1:8080 in a browser.

Changes made in the browser propagate to the server over HTTP (use the browser developer console to see these requests). The server then syncs changes to the file system (and logs each change to the screen).

test: build and run tests

This script runs the test edition of TiddlyWiki on the server to perform the server-side tests and to build test.html for running the tests in the browser.

lazy: serves tw5.com with lazily loaded images

./bin/lazy.sh <username> [<password>]

Or:

./bin/lazy.cmd <username> [<password>]

This script serves the tw5.com-server edition content with LazyLoading applied to images.

ScrollableWidget

 20 juin 2022 à 12h53

Introduction

The scrollable widget wraps its content in a scrollable frame. The user can scroll the contents with the mouse or with touch gestures. Code can use the WidgetMessage: tm-scroll to programmatically scroll specific DOM nodes into view.

Content and Attributes

The content of the <$scrollable> widget is displayed within a pair of wrapper DIVs. If the inner DIV is larger then it scrolls within the outer one. CSS is used to specify the size of the outer wrapper.

AttributeDescription
classThe CSS class(es) to be applied to the outer DIV
fallthroughSee below
Note
If a scrollable widget can't handle the tm-scroll message because the inner DIV fits within the outer DIV, then by default the message falls through to the parent widget. Setting the fallthrough attribute to no prevents this behaviour.

Examples

This example requires the following CSS definitions from $:/_tw5.com-styles:

.tc-scrollable-demo {
	border: 1px solid <<colour message-border>>;
	background-color: <<colour message-background>>;
	padding: 1em;
	height: 400px;
	position: relative;
}

This wiki text shows how to display a list within the scrollable widget:

<$scrollable class='tc-scrollable-demo'>
<$list filter='[tag[Reference]]'>

<$view field='title'/>: <$list filter='[all[current]links[]sort[title]]' storyview='pop'>
<$link><$view field='title'/></$link>
</$list>

</$list>
</$scrollable>

Affichera ceci :

search Operator

 29 novembre 2021 à 12h07
purposefilter the input by searching tiddler content
inputa selection of titles
suffixthe search operator uses a rich suffix, see below for details
parameterone or more search terms, separated by spaces, or a literal search string
outputthose input tiddlers in which all of the search terms can be found in the value of field F
! outputthose input tiddlers in which not all of the search terms can be found

Learn more about how to use Filters

Depuis : 5.1.18 The search filter operator was significantly enhanced in 5.1.18. Earlier versions do not support the extended syntax and therefore do not permit searching multiple fields, or the literal or casesensitive options.

The search operator uses an extended syntax that permits multiple fields and flags to be passed:

[search:<field list>:<flag list>[<operand>]]
  • field list: a comma delimited list of field names to restrict the search
    • defaults to tags, text and title if blank
    • an asterisk * instead of the field list causes the search to be performed across all fields available on each tiddler
    • preceding the list with a minus sign - reverses the order so that the search is performed on all fields except the listed fields
  • flag list: a comma delimited list of flags (defaults to words if blank)
  • operand: filter operand

This example searches the fields title and caption for a case-sensitive match for the literal string :

[search:title,caption:literal,casesensitive[The first]]

The available flags are:

  • Search mode - the first to be set of the following flags determines the type of search that is performed:
    • literal: considers the search string to be a literal string, and requires an exact match
    • whitespace: considers the search string to be a literal string, but will consider all runs of whitespace to be equivalent to a single space. Thus A B matches A B
    • regexp: treats the search string as a regular expression. Note that the regexp option obviates the need for the older regexp operator.
    • words: (the default) treats the search string as a list of tokens separated by whitespace, and matches if all of the tokens appear in the string (regardless of ordering and whether there is other text in between)
    • some: Depuis : 5.2.2 treats the search string as a list of tokens separated by whitespace, and matches if at least one of the tokens appear in the string
  • casesensitive: if present, this flag forces a case-sensitive match, where upper and lower case letters are considered different. By default, upper and lower case letters are considered identical for matching purposes.
  • anchored: Depuis : 5.1.20 anchors the search to the start of the string (applies to whitespace, literal and words modes)

Examples

search Operator (Examples)

 29 novembre 2021 à 12h27

[!is[system]search[table]]
→ non-system tiddlers containing the word "table"
[all[shadows]search[table]]
→ shadow tiddlers containing the word "table"
[search:caption[arch]]
→ tiddlers containing arch in their caption field
[search:*[arch]]
→ tiddlers containing arch in any field
[search:-title,caption[arch]]
→ tiddlers containing arch in any field except title and caption
[!is[system]search[the first]]
→ non-system tiddlers containing a case-insensitive match for both the "the" and "first"
[!is[system]search::literal[the first]]
→ non-system tiddlers containing a case-insensitive match for the literal phrase "the first"
[!is[system]search::literal,casesensitive[The first]]
→ non-system tiddlers containing a case-sensitive match for the literal phrase "The first"
[search:caption,description:casesensitive,words[arch]]
→ any tiddlers containing a case-sensitive match for the word arch in their caption or description fields
[search:tags:some[how test]]
→ any tiddlers containing at least 1 of the search terms in the field: tags
[search:tags:some,casesensitive[how test]]
→ any tiddlers containing at least 1 of the case-sensitive search terms in the field: tags
[search:tags,title:some,anchored[how test]]
→ any tiddlers containing at least 1 of anchored search terms in the fields: tags and title

search-replace Operator

 29 août 2021 à 18h45
purposereturns each item in the list, replacing within each title the string specified by the first parameter with the second parameter
inputa selection of titles
suffixthe search-replace operator uses a rich suffix, see below for details
parameterthe search-replace operator requires 2 parameters, see below for details
outputthe input titles with the search string replaced with the replacement string

Learn more about how to use Filters

Depuis : 5.1.23

The search-replace operator uses an extended syntax that allows for multiple suffixes and parameters to be passed:

[search-replace:<flag list>:<regexp-mode>[<search-term>],[<replacement>]]
  • flag-list: g for global mode to replace all matches, i for case-insensitive mode, Depuis : 5.2.0 m for multiline mode, "gim" for all. (optional)
  • regexp-mode: regexp to treat the first parameter as a regular expression (optional).
  • search-term: string or regular expression that should be replaced
  • replacement: string that should replace the search-term

Either parameter can be a string, a text reference or a variable

Examples

search-replace Operator (Examples)

 1 novembre 2021 à 12h52

Replace one string with another:

[[The quick brown fox jumps over the lazy dog]search-replace[dog],[cat]]

Replace all matches of a regular expression:

\define myregexp() e|o

[[Hello There]search-replace:g:regexp<myregexp>,[]]

Replace all matches of a string irrespective of case:

[[Hello There]search-replace:gi[H],[]]

You can also use regular expression capture groups in the replacement string: \define names() (\w+)\s(\w+)

[[John Smith]search-replace::regexp<names>,[$2,$1]]

You can reference the portion of the input that matches the regular expression with $&:

[[John Smith]search-replace::regexp[John .*],[His name is $&]]

[[This is an exciting feature]search-replace::regexp[exciting],[amazing and $&]]

To replace everything but a match using a regular expression and the multiline (m) flag: \define myregexp2() ^(?!Unlike).*$

[[HelloThere]get[text]search-replace:gm:regexp<myregexp2>,[]]

You can use the search-replace Operator in combination with the sortsub Operator to ignore stop words like "A" and "The" at the beginning of titles when sorting. (Note for example that "A Tale of Two Cities" sorts under "T" rather than "A")

[enlist<book-list>sortsub<compare-without-stopwords>]

You can also customise the listing so that "A Tale of Two Cities" is listed as "Tale of Two Cities, A" but still links to the correct tiddler.

<ul>
<$list filter="[enlist<book-list>sortsub<compare-without-stopwords>]">
<li><$link><$text text={{{[<currentTiddler>search-replace:i:regexp[(^The |A )(.*)],[$2, $1]]}}}/></$link></li>
</$list>
</ul>

Affichera ceci :

Chercher avec TiddlyWiki

 17 juin 2015 à 8h30

Une recherche rapide et maléable avec TiddlyWiki.

Recherche standard

Saisir du texte dans la case recherche du menu latéral listera une liste de tous les tiddlers contenant ce texte.

(Notez que les onglets du menu latéral seront masqués par les résultats de la recherche jusqu'à ce que vous cliquiez sur le 'x' à droite de la case de recherche pour les faire disparaitre)

Recherche avancée

Cliquer sur l'icone loupe à droit de la case de recherche ouvrira $:/AdvancedSearch, un tiddler contenant 4 onglets :

  • L'onglet standard est un autre présentation de la case recherche du menu classique
  • L'onglet système étend la recherche aux tiddlers système
  • L'onglet shadows étend la recherche aux tiddlers shadows
  • L'onglet filtre n'est pas une case de recherche, en soi, mais juste un moyen d'avoir une liste de tous les tiddlers selon les critères définis par le filtre, par exemple, "Toutes les étiquettes hormis les tags système"

Searchwikis by Mohammad

 17 novembre 2020 à 16h04

Searchwikis plugin uses index (dataTiddler) to search multiple external Tiddlywikis.

https://kookma.github.io/TW-Searchwikis/

It has two parts

  1. An indexer, to build an index of all tiddlers in an external wiki
  2. A search tool to search indexes and display a link to a tiddler found in an external wiki

Then one master wiki can host many index tiddlers and lets to search several external wikis through index tiddlers.

Searchwikis enable to have a central wiki and search all other wikis from one place.

Second

 14 novembre 2021 à 1h36

C'est un exemple de tiddler. Voir Macros Table des matières (Exemples).

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

SecondOne

 14 novembre 2021 à 1h36

C'est un exemple de tiddler. Voir Macros Table des matières (Exemples).

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

SecondThree

 14 novembre 2021 à 1h36

C'est un exemple de tiddler. Voir Macros Table des matières (Exemples).

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

SecondThreeOne

 14 novembre 2021 à 1h36

C'est un exemple de tiddler. Voir Macros Table des matières (Exemples).

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

SecondThreeThree

 14 novembre 2021 à 1h36

Important

It's important that this tiddler has no "child" to be able to visually test every possible toc code-path.

  • This tiddler has a field toc-link: no
  • Do not tag any other tiddler with the title of this one

SecondThreeTwo

 14 novembre 2021 à 1h36

C'est un exemple de tiddler. Voir Macros Table des matières (Exemples).

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

SecondTwo

 14 novembre 2021 à 1h36

C'est un exemple de tiddler. Voir Macros Table des matières (Exemples).

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

SeeAlso by Matias Goldman

 6 janvier 2021 à 15h10

A simple technique for adding tag-based cross references to the default view template.

http://seealso.tiddlyspot.com

See also: - is a feature to generate a "See also:" section after the tiddler text, somewhat like in Wikipedia articles.

Constructeurs de sélection

 24 juin 2015 à 10h27

Le résultat du filtre d'une étape dépend de son opérateur:

  • La plupart des opérateurs forment leurs résultats à partir de leurs entrées. Par exemple, la plupart produisent un sous-ensemble de leur entrée, et se faisant, méritent vraiment leur nom de "filtres",car ils réduisent la taille du résultat généré par la séquence. Ces opérateurs sont nommés modifieurs de sélection.
  • Quelques opérateurs ignorent leurs entrées et génèrent un résultat indépendant. Ils sont appelés constructeurs de sélection : Ils construisent une sélection entièrement nouvelle.

Un bon exemple de constructeur est l'opérateur title. Le résultat de [title[A]title[B]] est juste B. Mais l'ajout de l'opérateur modifieur field, [title[A]field:title[B] ne produit plus rien du tout.

SelectWidget

 8 novembre 2021 à 16h50

Introduction

The select widget displays a popup menu based on a HTML select element. The popup (or dropdown) contains a list of items defined by <option> and <optgroup> elements. Every time the user selects a new value in the menu, the selected value is written to the text of a specified tiddler field or index and any ActionWidgets within the actions attribute are triggered. Conversely, if the tiddler value is changed independently the select widget is automatically updated to reflect the new value.

In multiple selection mode, the list of selected values is bound to the specified tiddler field or index. Browsers generally use the ctrl or cmd keys for multiple selection.

For example, this select widget displays a list of the tags in this wiki:

<$select tiddler=<<qualify 'select-demo'>> default='HelloThere'>
<$list filter='[all[shadows+tiddlers]tags[]sort[title]]'>
<option value=<<currentTiddler>>><$view field='title'/></option>
</$list>
</$select>

Affichera ceci :

The state tiddler currently contains:

See the text change as you switch entries in the select widget. Try changing the value of the state tiddler and see the select widget change. Notice how the select widget only displays an entry if there is a precise match with the tiddler text.

Content and Attributes

The content of the <$select> widget should be one or more HTML <option> or <optiongroup> elements that provide the available values.

AttributeDescription
tiddlerThe title of the tiddler containing the value to be displayed/modified by the select widget (defaults to the current tiddler)
fieldThe field name for the value in the current tiddler (defaults to "text")
indexThe index of a property in a DataTiddler (takes precedence over the field attribute)
classCSS classes to be assigned to the HTML select element
tooltipOptional tooltip
defaultDefault value to be used if the tiddler, field or index specifies a missing value
multipleIf present, switches to multiple selection mode
sizeThe number of rows to display in multiple selection mode
actionsA string containing ActionWidgets to be triggered when the key combination is detected
focus Depuis : 5.2.4 Optional. Set to "yes" to automatically focus the HTML select element after creation
tabindex Depuis : 5.3.1 Optional. Sets the tabindex attribute of the HTML select element to the given value

Examples

Simple Lists

This example sets the title of the current wiki $:/SiteTitle to one of a list of book titles:

<$select tiddler='$:/SiteTitle' tooltip='Choose a new site title'>
<option>A Tale of Two Cities</option>
<option>A New Kind of Science</option>
<option>The Dice Man</option>
</$select>

Affichera ceci :

Simple List with Placeholder Value

To display a default value that is also disabled, effectively functioning as a placeholder, the following form can be used. Note that the targeted field must be empty, or not exist, for the placeholder to show in the widget:

<$select tiddler='New Tiddler' field='text' default='Choose a new text'>
<option disabled>Choose a new text</option>
<option>A Tale of Two Cities</option>
<option>A New Kind of Science</option>
<option>The Dice Man</option>
</$select>

Affichera ceci :

Value lists

In this example the value attribute has been used to specify the text that should be used as the value of the entry instead of the display text.

<$select tiddler='$:/SiteTitle'>
<option value='cities'>A Tale of Two Cities</option>
<option value='science'>A New Kind of Science</option>
<option value='dice'>The Dice Man</option>
</$select>

Affichera ceci :

Option Groups

Entries in the list can be grouped together with the <optgroup> element

<$select tiddler='$:/SiteTitle'>
<optgroup label='Fiction'>
<option value='cities'>A Tale of Two Cities</option>
<option value='dice'>The Dice Man</option>
</optgroup>
<optgroup label='Non-fiction'>
<option value='science'>A New Kind of Science</option>
<option value='recursive'>The Recursive Universe</option>
</optgroup>
</$select>

Affichera ceci :

Generated Lists

The ListWidget can be used to generate the options for a select widget. For example, here we combine a select widget listing all the tiddlers tagged TableOfContents with a transclusion to display the text of the selected one.

<$select tiddler='$:/generated-list-demo-state'>
<$list filter='[tag[TableOfContents]]'>
<option><$view field='title'/></option>
</$list>
</$select>
<$tiddler tiddler={{$:/generated-list-demo-state}}>
<$transclude mode='block'/>
</$tiddler>

Affichera ceci :

Nested Lists

This example uses a nested pair of list widgets. The outer one generates the <optgroup> elements, and the inner one generates <option> elements:

<$select tiddler='$:/generated-list-demo-nestedstate' field='type' default='text/vnd.tiddlywiki'>
<$list filter='[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]each[group]sort[group]]'>
<optgroup label={{!!group}}>
<$list filter='[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]group{!!group}] +[sort[description]]'>
<option value={{!!name}}><$view field='description'><$view field='title'/></$view> (<$view field='name'/>)</option>
</$list>
</optgroup>
</$list>
</$select>

Affichera ceci :

Multiple Selections

This example uses the multiple keyword to specify that we should be able to select multiple items.

<$select tiddler='$:/generated-list-demo-state' field='testing' multiple size='8'>
<$list filter='[tag[TableOfContents]]'>
<option><$view field='title'/></option>
</$list>
</$select><br />
<$list filter='[list[$:/generated-list-demo-state!!testing]]'>
<$view field='title' /><br />
</$list>

Affichera ceci :


Actions

This example uses the actions attribute to apply days of the week as tags to the current tiddler.

<$select tiddler='$:/generated-list-demo-state' field='actions-test' 
actions='<$action-listops $field="myfield" $tags={{$:/generated-list-demo-state!!actions-test}}/>'
>
<$list filter='[list[Days of the Week]]'>
<option><$view field='title'/></option>
</$list>
</$select>

Affichera ceci :

Semantic Colors by Mohammad

 6 janvier 2021 à 15h10

Semantic colors are set of CSS to apply colorful theme to individual tiddlers for categorisation purpose.

https://kookma.github.io/TW-Semantic-Colors/

Tiddlywiki "semantic colors" has two objectives:

  1. How it is simply possible to apply theme to an individual tiddler
  2. Use semantic colors for categorisation
Some use cases
Learning materials (each topic, category can have dedicated semantic color, like learning a foreign language)
Slideshow (section divider, each part can have a semantic color)
Books and tutorials ( different semantic colors can be applied to chapters, specific subjects, like example tiddlers)
Visual tags (instead of looking for tag bar and see to what category this subject (tiddler) belongs, you can identify it by its semantic color)

sentencecase Operator

 19 juin 2019 à 12h07
purposereturns each item in the list with the first letter capitalised
inputa selection of titles
outputthe input titles with each first letter capitalised

Learn more about how to use Filters

Depuis : 5.1.20

See also lowercase Operator, uppercase Operator, titlecase Operator.

This operator does not change anything except the first letter of each title, so [[aBcD eFgH]] would become [[ABcD eFgH]]. If you want [[Abcd efgh]], then use a filter like [lowercase[]sentencecase[]].

Examples

sentencecase Operator (Examples)

 20 juin 2019 à 15h03

[[abc def ghi jkl]sentencecase[]]

[[abc deF gHi jKL]sentencecase[]]

[[abc deF gHi jKL]lowercase[]sentencecase[]]

[tag[HelloThere]sentencecase[]]

ServerCommand

 26 juin 2018 à 16h05

Note that the --server command is now deprecated in favour of the new ListenCommand.

See WebServer for details of TiddlyWiki's web server functionality.

Ancienne commande pour servir un wiki sur HTTP.

--server <port> <tiddler-racine> <type-du-rendu> <type-du-service> <nom-d-utilisateur> <mot-de-passe> <machine> <préfixe-des-chemins> <niveau-débogage>

Les arguments sont :

  • port - numéro de port sur lequel servir le contenu ; une valeur non-numérique sera interprétée comme un nom de variable d'environnement du système dont la valeur est le numéro de port (défaut : "8080")
  • tiddler-racine - le titre du tiddler à afficher à la racine de l'URL (défaut : "$:/core/save/all")
  • type-du-rendu - le type avec lequel le contenu du tiddler racine doit être rendu (text/plain par défaut)
  • type-du-service - le type avec lequel le contenu du tiddler racine doit être servi (text/html par défaut)
  • nom-d-utilisateur - le nom d'utilisateur qui servira par défaut à signer les modifications
  • mot-de-passe - mot de passe optionnel permettant une authentification basique
  • machine - nom de machine optionnel d'où le contenu doit être servi ("127.0.0.1" par défaut, autrement dit "localhost")
  • préfixe-des-chemins - préfixe optionnel pour les chemins de fichiers
  • niveau-débogage - optional debug level; set to "debug" to view request details (defaults to "none")

Si le mot de passe est spécifié en argument, le navigateur demandera à l'utilisateur d'entrer le nom d'utilisateur et le mot de passe. On notera que le mot de passe est transmis en clair, et que cette implémentation ne convient donc pas pour un usage général.

Par exemple :

--server 8080 $:/core/save/all text/plain text/html MonNomUtilisateur m0tdepa55e

Le nom d'utilisateur et le mot de passe peuvent être spécifiés sous forme de chaînes vides si vous avez besoin d'indiquer le nom de machine ou le préfixe des chemins sans pour autant demander un mot de passe :

--server 8080 $:/core/save/all text/plain text/html "" "" 192.168.0.245

Si vous voulez faire tourner plusieurs serveurs TiddlyWiki en même temps sur la même machine, vous devrez leur assigner chacun un port différent. Il peut être utile d'utiliser une variable d'environnement pour passer le numéro de port au process Node.js. L'exemple suivant utilise une variable d'environnement appelée "MY_PORT_NUMBER" :

--server MY_PORT_NUMBER $:/core/save/all text/plain text/html MonNomUtilisateur m0tdepa55e

Partager TW5 depuis Android

 2 avril 2022 à 11h58

Termux est une application Android open source qui fournit un environnement Unix suffisant pour installer Node.js et des modules npm sur Android. Les utilisateurs peuvent installer et exécuter TiddlyWiki sur Node.js grâce à Termux.

Instructions

apt update
apt upgrade
apt install nodejs
npm install -g tiddlywiki
  • Si vous avez besoin de créer/partager TiddlyWiki sur Node.js à partir de la mémoire interne, vous devez accorder à Termux les autorisations d'accès au stockage en exécutant la commande suivante dans Termux :
termux-setup-storage
  • Vous pouvez maintenant créer et partager TiddlyWiki sur Node.js à partir de la mémoire interne. Dans les exemples ci-dessous, l'utilisateur crée un nouveau wiki nommé monnouveauwiki dans son dossier interne :
cd storage/shared
tiddlywiki monnouveauwiki --init server
tiddlywiki monnouveauwiki --listen
  • Naviguez vers http://127.0.0.1:8080/ avec votre navigateur web
  • A partir de là, tant que Termux fonctionne vous pouvez accéder à votre wiki à votre convenance depuis votre navigateur favori en le faisant pointer vers l'adresse et le port attendus.

Dans Termux, vous pouvez aussi installer git, emacs ou vi, afin d'éditer et maintenir les fichiers des tiddlers individuels. Vous aurez probablement besoin d'un meilleur clavier pour votre appareil, comme l'application Hacker's Keyboard ou un périphérique externe Bluetooth.

SetFieldCommand

 9 juin 2014 à 13h16

Notez que cette commande est expérimentale et peut changer ou être remplacée avant d'être finalisée

Initialise le champ spécifié d'un groupe de tiddlers avec le résultat de la wikification d'un tiddler template, la variable currentTiddler prenant tour à tour la valeur de chaque tiddler.

--setfield <filtre> <nom-du-champ> <titre-du-template> <type-de-rendu>

Les paramètres sont les suivants :

  • filtre - filtre identifiant les tiddlers cibles
  • nom-du-champ - le champ à modifier ("text" par défaut)
  • titre-du-template - le tiddler à wikifier dans le champ spécifié. Si manquant ou blanc, le champ spécifié est supprimé
  • type-de-rendu - le type de texte à utiliser pour le rendu ("text/plain" par défaut ; "text/html" peut servir à inclure des éléments HTML)

SetMultipleVariablesWidget

 23 octobre 2021 à 17h24

Introduction

The setmultiplevariables widget assigns values to multiple variables where the names and values of the variables are specified as separate filter.

Content and Attributes

The content of the <$setmultiplevariables> widget is the scope for the value assigned to the variable.

AttributeDescription
$namesFilter evaluating to the names of a list of variables to assign
$valuesFilter evaluating to the values corresponding to the list of names specified in $names

Examples

Here is an example of a convoluted way to display the values of the fields of the tiddler "HelloThere":

<$setmultiplevariables $names="[[HelloThere]fields[]addprefix[demo-]]" $values="[[HelloThere]fields[]] :map[[HelloThere]get<currentTiddler>]">
<ol>
<$list filter="[variables[]prefix[demo-]sort[]]">
<li>
''<$text text={{{ [<currentTiddler>removeprefix[demo-]] }}}/>'': <$text text={{{ [<currentTiddler>getvariable[]] }}}/>
</li>
</$list>
</ol>
</$setmultiplevariables>

Affichera ceci :

  1. caption: Bienvenue !
  2. created: 20130822170200000
  3. fr-title: Bienvenue !
  4. list: [[Discover TiddlyWiki]] [[Some of the things you can do with TiddlyWiki]] [[Ten reasons to switch to TiddlyWiki]] Examples [[History of TiddlyWiki]] [[What happened to the original TiddlyWiki?]]
  5. modified: 20220217174842374
  6. tags: TableOfContents
  7. text: ''N'avez-vous jamais eu la sensation que votre tête était trop petite pour contenir tout ce que vous avez besoin de mémoriser<<?>>'' Bienvenue sur TiddlyWiki, un carnet de notes web [[non-linéaire|Philosophy of Tiddlers]] pour [[saisir|Creating and editing tiddlers]], [[organiser|Structuring TiddlyWiki]] et [[partager|Sharing your tiddlers with others]] des informations simples ou complexes. Utilisez-le pour gérer votre [[liste de tâches|TaskManagementExample]], faire le plan d'un [[essai ou d'une nouvelle|"TiddlyWiki for Scholars" by Alberto Molina]], ou pour organiser votre mariage. Enregistrez tout ce qui vous traverse l'esprit, ou construisez un site web flexible et réactif. <div style="font-size:0.7em;text-align:center;margin-top:2em;margin-bottom:2em;"> <<list-thumbnails filter:"[tag[HelloThumbnail]]" width:"168" height:"95">> </div> Contrairement aux services en ligne classiques, TiddlyWiki vous permet de choisir où conserver vos informations, et garantit que, dans les décennies à venir, vous pourrez toujours utiliser les notes que vous prenez aujourd'hui. <div style="font-size:0.7em;text-align:center;margin:3em auto;"> <a href="https://talk.tiddlywiki.org/" class="tc-btn-big-green" style="border-radius:4px;background-color:#FF8C19;" target="_blank" rel="noopener noreferrer"> {{$:/core/images/help}} ~TalkTW </a> <a href="https://www.youtube.com/c/JeremyRuston" class="tc-btn-big-green" style="border-radius:4px;background-color:#e52d27;" target="_blank" rel="noopener noreferrer"> {{$:/core/images/video}} ~YouTube </a> <a href="https://twitter.com/TiddlyWiki" class="tc-btn-big-green" style="border-radius:4px;background-color:#5E9FCA;" target="_blank" rel="noopener noreferrer"> {{$:/core/images/twitter}} Twitter </a> <a href="https://github.com/Jermolene/TiddlyWiki5" class="tc-btn-big-green" style="border-radius:4px;background-color:#444;" target="_blank" rel="noopener noreferrer"> {{$:/core/images/github}} ~GitHub </a> <a href="https://gitter.im/TiddlyWiki/public" class="tc-btn-big-green" style="border-radius:4px;background-color:#753a88;background-image:linear-gradient(to left,#cc2b5e,#753a88);" target="_blank" rel="noopener noreferrer"> {{$:/core/images/gitter}} Gitter </a> </div>
  8. title: HelloThere
  9. type: text/vnd.tiddlywiki

Choisir un « favicon »

 15 novembre 2014 à 21h29

Les « favicons » sont de petites icones que la plupart des navigateurs web affichent pour aider les utilisateurs à identifier les sites web.

favicons dans le Navigateur

Lorsque TiddlyWiki démarre dans le navigateur, il cherche un tiddler nommé $:/favicon.ico et l'utilise dynamiquement comme favicon de la page. Si vous modifiez l'image, le favicon change instantanément pour en tenir compte.

favicons sur le Serveur

Sur le serveur, la commande server servira le tiddler $:/favicon.ico sur le chemin /favicon.ico.

Mettre une image de fond de page

 15 juin 2015 à 12h03
  1. Importer votre image comme tiddler (voir Images dans WikiText)
  2. Ouvrez le $:/ControlPanel et sélectionnez réglage thème dans l'onglet Apparence
  3. Choisissez votre image à partir de la liste déroulante "Page background image"
  4. Réglez "Fixation de l'image de fond de page" à "Fixée à la fenêtre" pour un fond d'écran figé avec le contenu se déroulant au dessus, ou "Défile avec les tiddlers" pour le faire se déplacer (notez que les iPhone/iPad n'acceptent pas le réglage fixé pour des raisons de performance)
  5. Réglez "Taille de l'image de fond de page" comme suit :
    • Auto permet à l'image de dépasser le cadre du fond de page
    • Élargie étend l'image jusqu'à ce que sa taille couvre complètement la page. Une partie de l'image peut être tronquée
    • Contenue ajuste l'image de façon à ce qu'elle s'inscrive complètement dans la page

Notez que la palette DarkPhotos est proposée pour rendre le menu latéral plus lisible avec les images de fond sombres.

SetVariableWidget

 29 octobre 2014 à 9h15

Le widget <$setvariable> est un synonyme de <$set/>; voir SetWidget pour plus de détails.

Widget set

 20 juin 2015 à 7h11

Introduction

Le widget set variable affecte une valeur à une variable spécifiée. La nouvelle valeur est alors disponible par le contenu dans le cadre défini du widget.

Contenu et Attributs

Le contenu du widget <$set> forme le cadre de la valeur affectée à la variable.

AttributDescription
nameLe nom de la variable à affecter (par défaut du "Tiddlercourant")
valueLa valeur à affecter à la variable si le filtre est manquant ou non vide
filterUn filtre optionnel à évaluer et à affecter à la variable (voir ci-dessous)
emptyValueLa valeur à affecter à la variable si le filtre évalue une liste vide (voir ci-dessous)

Affectation simple d'une variable

L'utilisation la plus simple du widget set variable affecte une chaine à une variable. L'exemple suivant affecte une chaine littérale

<$set name="maVariable" value="du texte">
<$text text=<<maVariable>>/>
</$set>

Les attributs nom et valeur peuvent tous deux être transclus. Par exemple :

<$set name=<<autreVariable>> value={{gabarit!!texte}}>
<$text text=<<maVariable>>/>
</$set>

Affectation conditionnel d'une variable

Cette forme du widget set variable choisit une des deux valeurs spécifiées selon que le résultat du filtre soit une liste vide ou pas. Voici un exemple affectant une variable selon que le tiddler courant se nomme "monTitreMagique" ou pas :

<$set name="maVariable" filter="[all[current]field:title[monTitreMagique]]" value="C'est magique" emptyValue="Ce n'est pas magique">
<$text text=<<maVariable>>/>
</$set>

Affectation d'une liste filtrée de variable

Cette forme du widget set variable évalue le filtre et affecte le résultat à la variable sous forme de liste séparée par des espaces (utilisation des double crochets pour les titres contenant des espaces).

<$set name="maVariable" filter="[tag[Introduction]]">
<$text text=<<maVariable>>/>
</$set>

sha256 Operator

 29 janvier 2022 à 10h55
purposeapply sha256 hash to a string
inputa selection of titles
parameterL = the number of characters to return, up to a maximum of 64
outputthe base64 encoded sha256 of the input, truncated to the specified length

Learn more about how to use Filters

Depuis : 5.1.14

Hashes are a way of turning strings of arbitrary length into obfuscated strings of fixed length. They are often used in situations where items need to be stored by name but it is inconvenient to allow arbitrary length strings.

See Wikipedia for details of the sha256 operation.

Examples

shadowsource Operator

 3 février 2015 à 19h11
purposeselect the plugin titles that contain the input shadows
inputa selection of shadow titles
parameternone
outputthe plugins that contain the input tiddlers

Learn more about how to use Filters

Each input title is processed in turn. If it denotes a shadow tiddler, the title of its plugin tiddler is dominantly appended to the output. Non-shadow tiddlers contribute nothing to the output.

Examples

shadowsource Operator (Examples)

 24 janvier 2015 à 21h07

[[$:/core/copyright.txt]shadowsource[]]

$:/core/copyright.txt $:/plugins/tiddlywiki/railroad/parser.js +[shadowsource[]]

Tiddlers shadow

 24 juin 2015 à 10h20

Les tiddlers shadow sont des tiddlers chargés à partir d'un Plugins. Contrairement aux tiddlers ordinaires, ils n'apparaissent pas dans de multiple listes.

Les tiddlers shadow peuvent être remplacés par un tiddler ordinaire de même nom. Si ce tiddler est supprimé, le tiddler shadow est alors automatiquement restauré.

Les tiddlers shadow actuels sont :

$:/Acknowledgements
$:/AdvancedSearch
$:/config/AnimationDuration
$:/config/AutoFocus
$:/config/AutoSave
$:/config/BitmapEditor/Colour
$:/config/BitmapEditor/ImageSizes
$:/config/BitmapEditor/LineWidth
$:/config/BitmapEditor/LineWidths
$:/config/BitmapEditor/Opacities
$:/config/BitmapEditor/Opacity
$:/config/ControlPanel/Basics/DefaultTiddlers/RetainStory
$:/config/DefaultColourMappings/menubar-background
$:/config/DefaultColourMappings/menubar-foreground
$:/config/DefaultMoreSidebarTab
$:/config/DefaultSidebarTab
$:/config/DownloadSaver/AutoSave
$:/config/Drafts/TypingTimeout
$:/config/EditMode/fieldname-filter
$:/config/Editor/EnableImportFilter
$:/config/Editor/ImportContentTypesFilter
$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-4
$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-5
$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-6
$:/config/EditorTypeMappings/image/gif
$:/config/EditorTypeMappings/image/heic
$:/config/EditorTypeMappings/image/heif
$:/config/EditorTypeMappings/image/jpeg
$:/config/EditorTypeMappings/image/jpg
$:/config/EditorTypeMappings/image/png
$:/config/EditorTypeMappings/image/webp
$:/config/EditorTypeMappings/image/x-icon
$:/config/EditorTypeMappings/text/vnd.tiddlywiki
$:/config/EditTabIndex
$:/config/EditTemplateBodyFilters/canonical-uri
$:/config/EditTemplateBodyFilters/default
$:/config/EditTemplateFields/Visibility/bag
$:/config/EditTemplateFields/Visibility/created
$:/config/EditTemplateFields/Visibility/creator
$:/config/EditTemplateFields/Visibility/draft.of
$:/config/EditTemplateFields/Visibility/draft.title
$:/config/EditTemplateFields/Visibility/modified
$:/config/EditTemplateFields/Visibility/modifier
$:/config/EditTemplateFields/Visibility/revision
$:/config/EditTemplateFields/Visibility/tags
$:/config/EditTemplateFields/Visibility/text
$:/config/EditTemplateFields/Visibility/title
$:/config/EditTemplateFields/Visibility/type
$:/config/FieldEditorFilters/default
$:/config/Manager/Filter
$:/config/Manager/Order
$:/config/Manager/Show
$:/config/Manager/Sort
$:/config/Manager/System
$:/config/Manager/Tag
$:/config/MissingLinks
$:/config/Navigation/openLinkFromInsideRiver
$:/config/Navigation/openLinkFromOutsideRiver
$:/config/Navigation/UpdateAddressBar
$:/config/Navigation/UpdateHistory
$:/config/NewImageType
$:/config/NewJournal/Tags
$:/config/NewJournal/Text
$:/config/NewJournal/Title
$:/config/OfficialPluginLibrary
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/advanced-search
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/close-all
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/encryption
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/export-page
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/fold-all
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/full-screen
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/home
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/import
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/language
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/layout
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/manager
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/network-activity
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-image
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-journal
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/palette
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/permaview
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/print
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/refresh
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/storyview
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/tag-manager
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/theme
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/timestamp
$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/unfold-all
$:/config/Performance/Instrumentation
$:/config/plugins/menubar/breakpoint
$:/config/plugins/menubar/MenuItems/Visibility/$:/plugins/tiddlywiki/menubar/items/pagecontrols
$:/config/plugins/menubar/MenuItems/Visibility/$:/plugins/tiddlywiki/menubar/items/server
$:/config/plugins/menubar/MenuItems/Visibility/$:/plugins/tiddlywiki/menubar/items/sidebar
$:/config/plugins/menubar/TableOfContents/Tag
$:/config/RegisterPluginType/import
$:/config/RegisterPluginType/info
$:/config/RegisterPluginType/language
$:/config/RegisterPluginType/plugin
$:/config/RegisterPluginType/theme
$:/config/SaverFilter
$:/config/SaveWikiButton/Template
$:/config/Search/AutoFocus
$:/config/Search/MinLength
$:/config/SearchResults/Default
$:/config/Server/ExternalFilters/[all[tiddlers]!is[system]sort[title]]
$:/config/ShortcutInfo/add-field
$:/config/ShortcutInfo/advanced-search
$:/config/ShortcutInfo/advanced-search-sidebar
$:/config/ShortcutInfo/bold
$:/config/ShortcutInfo/cancel-edit-tiddler
$:/config/ShortcutInfo/change-sidebar-layout
$:/config/ShortcutInfo/delete-field
$:/config/ShortcutInfo/excise
$:/config/ShortcutInfo/heading-1
$:/config/ShortcutInfo/heading-2
$:/config/ShortcutInfo/heading-3
$:/config/ShortcutInfo/heading-4
$:/config/ShortcutInfo/heading-5
$:/config/ShortcutInfo/heading-6
$:/config/ShortcutInfo/input-accept
$:/config/ShortcutInfo/input-accept-variant
$:/config/ShortcutInfo/input-cancel
$:/config/ShortcutInfo/input-down
$:/config/ShortcutInfo/input-tab-left
$:/config/ShortcutInfo/input-tab-right
$:/config/ShortcutInfo/input-up
$:/config/ShortcutInfo/italic
$:/config/ShortcutInfo/layout-switcher
$:/config/ShortcutInfo/link
$:/config/ShortcutInfo/linkify
$:/config/ShortcutInfo/list-bullet
$:/config/ShortcutInfo/list-number
$:/config/ShortcutInfo/mono-block
$:/config/ShortcutInfo/mono-line
$:/config/ShortcutInfo/new-image
$:/config/ShortcutInfo/new-journal
$:/config/ShortcutInfo/new-tiddler
$:/config/ShortcutInfo/picture
$:/config/ShortcutInfo/preview
$:/config/ShortcutInfo/quote
$:/config/ShortcutInfo/save-tiddler
$:/config/ShortcutInfo/save-wiki
$:/config/ShortcutInfo/sidebar-search
$:/config/ShortcutInfo/stamp
$:/config/ShortcutInfo/strikethrough
$:/config/ShortcutInfo/subscript
$:/config/ShortcutInfo/superscript
$:/config/ShortcutInfo/toggle-sidebar
$:/config/ShortcutInfo/transcludify
$:/config/ShortcutInfo/underline
$:/config/shortcuts-mac/bold
$:/config/shortcuts-mac/italic
$:/config/shortcuts-mac/new-image
$:/config/shortcuts-mac/new-journal
$:/config/shortcuts-mac/new-tiddler
$:/config/shortcuts-mac/save-wiki
$:/config/shortcuts-mac/underline
$:/config/shortcuts-not-mac/bold
$:/config/shortcuts-not-mac/italic
$:/config/shortcuts-not-mac/new-image
$:/config/shortcuts-not-mac/new-journal
$:/config/shortcuts-not-mac/new-tiddler
$:/config/shortcuts-not-mac/underline
$:/config/shortcuts/add-field
$:/config/shortcuts/advanced-search
$:/config/shortcuts/advanced-search-sidebar
$:/config/shortcuts/cancel-edit-tiddler
$:/config/shortcuts/change-sidebar-layout
$:/config/shortcuts/delete-field
$:/config/shortcuts/excise
$:/config/shortcuts/heading-1
$:/config/shortcuts/heading-2
$:/config/shortcuts/heading-3
$:/config/shortcuts/heading-4
$:/config/shortcuts/heading-5
$:/config/shortcuts/heading-6
$:/config/shortcuts/input-accept
$:/config/shortcuts/input-accept-variant
$:/config/shortcuts/input-cancel
$:/config/shortcuts/input-down
$:/config/shortcuts/input-tab-left
$:/config/shortcuts/input-tab-right
$:/config/shortcuts/input-up
$:/config/shortcuts/layout-switcher
$:/config/shortcuts/link
$:/config/shortcuts/linkify
$:/config/shortcuts/list-bullet
$:/config/shortcuts/list-number
$:/config/shortcuts/mono-block
$:/config/shortcuts/mono-line
$:/config/shortcuts/picture
$:/config/shortcuts/preview
$:/config/shortcuts/quote
$:/config/shortcuts/save-tiddler
$:/config/shortcuts/save-wiki
$:/config/shortcuts/sidebar-search
$:/config/shortcuts/stamp
$:/config/shortcuts/strikethrough
$:/config/shortcuts/subscript
$:/config/shortcuts/superscript
$:/config/shortcuts/toggle-sidebar
$:/config/shortcuts/transcludify
$:/config/StoryTiddlerTemplateFilters/default
$:/config/StoryTiddlerTemplateFilters/draft
$:/config/SwitcherTargets/language
$:/config/SwitcherTargets/layout
$:/config/SwitcherTargets/palette
$:/config/SwitcherTargets/theme
$:/config/SyncFilter
$:/config/SyncSystemTiddlersFromServer
$:/config/Tags/MinLength
$:/config/TextEditor/EditorHeight/Height
$:/config/TextEditor/EditorHeight/Mode
$:/config/TiddlerColourFilters/color-field
$:/config/TiddlerColourFilters/default
$:/config/TiddlerIconFilters/default
$:/config/TiddlerIconFilters/icon-field
$:/config/TiddlerInfo/Default
$:/config/TiddlerInfo/Mode
$:/config/Tiddlers/TitleLinks
$:/config/Toolbar/ButtonClass
$:/config/Toolbar/Icons
$:/config/Toolbar/Text
$:/config/ui/EditTemplate
$:/config/ui/ViewTemplate
$:/config/ViewTemplateBodyFilters/code-body
$:/config/ViewTemplateBodyFilters/core-ui-tags
$:/config/ViewTemplateBodyFilters/default
$:/config/ViewTemplateBodyFilters/hide-body
$:/config/ViewTemplateBodyFilters/import
$:/config/ViewTemplateBodyFilters/plugin
$:/config/ViewTemplateBodyFilters/stylesheet
$:/config/ViewTemplateBodyFilters/system
$:/config/ViewTemplateTitleFilters/default
$:/config/ViewTemplateTitleFilters/system
$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/clone
$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/close-others
$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/delete
$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/export-tiddler
$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold
$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar
$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-others
$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/info
$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions
$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-here
$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-journal-here
$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/open-window
$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permalink
$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permaview
$:/config/WikiParserRules/Inline/wikilink
$:/ControlPanel
$:/core/buttonstyles/Borderless
$:/core/buttonstyles/Boxed
$:/core/buttonstyles/Rounded
$:/core/config/GlobalImportFilter
$:/core/copyright.txt
$:/core/Filters/AllTags
$:/core/Filters/AllTiddlers
$:/core/Filters/Drafts
$:/core/Filters/Missing
$:/core/Filters/Orphans
$:/core/Filters/OverriddenShadowTiddlers
$:/core/Filters/RecentSystemTiddlers
$:/core/Filters/RecentTiddlers
$:/core/Filters/SessionTiddlers
$:/core/Filters/ShadowTiddlers
$:/core/Filters/StoryList
$:/core/Filters/SystemTags
$:/core/Filters/SystemTiddlers
$:/core/Filters/TypedTiddlers
$:/core/fr-FR/readme
$:/core/icon
$:/core/images/add-comment
$:/core/images/advanced-search-button
$:/core/images/auto-height
$:/core/images/blank
$:/core/images/bold
$:/core/images/cancel-button
$:/core/images/chevron-down
$:/core/images/chevron-left
$:/core/images/chevron-right
$:/core/images/chevron-up
$:/core/images/clone-button
$:/core/images/close-all-button
$:/core/images/close-button
$:/core/images/close-others-button
$:/core/images/copy-clipboard
$:/core/images/delete-button
$:/core/images/done-button
$:/core/images/down-arrow
$:/core/images/download-button
$:/core/images/edit-button
$:/core/images/erase
$:/core/images/excise
$:/core/images/export-button
$:/core/images/file
$:/core/images/fixed-height
$:/core/images/fold-all-button
$:/core/images/fold-button
$:/core/images/fold-others-button
$:/core/images/folder
$:/core/images/full-screen-button
$:/core/images/github
$:/core/images/gitter
$:/core/images/globe
$:/core/images/heading-1
$:/core/images/heading-2
$:/core/images/heading-3
$:/core/images/heading-4
$:/core/images/heading-5
$:/core/images/heading-6
$:/core/images/help
$:/core/images/home-button
$:/core/images/import-button
$:/core/images/info-button
$:/core/images/italic
$:/core/images/layout-button
$:/core/images/left-arrow
$:/core/images/line-width
$:/core/images/link
$:/core/images/linkify
$:/core/images/list
$:/core/images/list-bullet
$:/core/images/list-number
$:/core/images/locked-padlock
$:/core/images/mail
$:/core/images/mastodon
$:/core/images/menu-button
$:/core/images/minus-button
$:/core/images/mono-block
$:/core/images/mono-line
$:/core/images/network-activity
$:/core/images/new-button
$:/core/images/new-here-button
$:/core/images/new-image-button
$:/core/images/new-journal-button
$:/core/images/opacity
$:/core/images/open-window
$:/core/images/options-button
$:/core/images/paint
$:/core/images/palette
$:/core/images/permalink-button
$:/core/images/permaview-button
$:/core/images/picture
$:/core/images/plugin-generic-language
$:/core/images/plugin-generic-plugin
$:/core/images/plugin-generic-theme
$:/core/images/plus-button
$:/core/images/preview-closed
$:/core/images/preview-open
$:/core/images/print-button
$:/core/images/quote
$:/core/images/refresh-button
$:/core/images/right-arrow
$:/core/images/rotate-left
$:/core/images/save-button
$:/core/images/save-button-dynamic
$:/core/images/size
$:/core/images/spiral
$:/core/images/stamp
$:/core/images/star-filled
$:/core/images/storyview-classic
$:/core/images/storyview-pop
$:/core/images/storyview-zoomin
$:/core/images/strikethrough
$:/core/images/subscript
$:/core/images/superscript
$:/core/images/tag-button
$:/core/images/theme-button
$:/core/images/timestamp-off
$:/core/images/timestamp-on
$:/core/images/tip
$:/core/images/transcludify
$:/core/images/twitter
$:/core/images/underline
$:/core/images/unfold-all-button
$:/core/images/unfold-button
$:/core/images/unlocked-padlock
$:/core/images/up-arrow
$:/core/images/video
$:/core/images/warning
$:/core/macros/colour-picker
$:/core/macros/copy-to-clipboard
$:/core/macros/CSS
$:/core/macros/diff
$:/core/macros/dumpvariables
$:/core/macros/export
$:/core/macros/image-picker
$:/core/macros/keyboard-driven-input
$:/core/macros/lingo
$:/core/macros/list
$:/core/macros/tabs
$:/core/macros/tag
$:/core/macros/tag-picker
$:/core/macros/thumbnails
$:/core/macros/timeline
$:/core/macros/toc
$:/core/macros/translink
$:/core/macros/tree
$:/core/macros/utils
$:/core/modules/browser-messaging.js
$:/core/modules/commander.js
$:/core/modules/commands/build.js
$:/core/modules/commands/clearpassword.js
$:/core/modules/commands/commands.js
$:/core/modules/commands/deletetiddlers.js
$:/core/modules/commands/editions.js
$:/core/modules/commands/fetch.js
$:/core/modules/commands/help.js
$:/core/modules/commands/import.js
$:/core/modules/commands/init.js
$:/core/modules/commands/listen.js
$:/core/modules/commands/load.js
$:/core/modules/commands/makelibrary.js
$:/core/modules/commands/output.js
$:/core/modules/commands/password.js
$:/core/modules/commands/render.js
$:/core/modules/commands/rendertiddler.js
$:/core/modules/commands/rendertiddlers.js
$:/core/modules/commands/save.js
$:/core/modules/commands/savelibrarytiddlers.js
$:/core/modules/commands/savetiddler.js
$:/core/modules/commands/savetiddlers.js
$:/core/modules/commands/savewikifolder.js
$:/core/modules/commands/server.js
$:/core/modules/commands/setfield.js
$:/core/modules/commands/unpackplugin.js
$:/core/modules/commands/verbose.js
$:/core/modules/commands/version.js
$:/core/modules/config.js
$:/core/modules/deserializers.js
$:/core/modules/editor/engines/framed.js
$:/core/modules/editor/engines/simple.js
$:/core/modules/editor/factory.js
$:/core/modules/editor/operations/bitmap/clear.js
$:/core/modules/editor/operations/bitmap/resize.js
$:/core/modules/editor/operations/bitmap/rotate-left.js
$:/core/modules/editor/operations/text/excise.js
$:/core/modules/editor/operations/text/focus-editor.js
$:/core/modules/editor/operations/text/insert-text.js
$:/core/modules/editor/operations/text/make-link.js
$:/core/modules/editor/operations/text/prefix-lines.js
$:/core/modules/editor/operations/text/replace-all.js
$:/core/modules/editor/operations/text/replace-selection.js
$:/core/modules/editor/operations/text/save-selection.js
$:/core/modules/editor/operations/text/wrap-lines.js
$:/core/modules/editor/operations/text/wrap-selection.js
$:/core/modules/filterrunprefixes/all.js
$:/core/modules/filterrunprefixes/and.js
$:/core/modules/filterrunprefixes/cascade.js
$:/core/modules/filterrunprefixes/else.js
$:/core/modules/filterrunprefixes/except.js
$:/core/modules/filterrunprefixes/filter.js
$:/core/modules/filterrunprefixes/intersection.js
$:/core/modules/filterrunprefixes/map.js
$:/core/modules/filterrunprefixes/or.js
$:/core/modules/filterrunprefixes/reduce.js
$:/core/modules/filterrunprefixes/sort.js
$:/core/modules/filterrunprefixes/then.js
$:/core/modules/filters.js
$:/core/modules/filters/addprefix.js
$:/core/modules/filters/addsuffix.js
$:/core/modules/filters/after.js
$:/core/modules/filters/all.js
$:/core/modules/filters/all/current.js
$:/core/modules/filters/all/missing.js
$:/core/modules/filters/all/orphans.js
$:/core/modules/filters/all/shadows.js
$:/core/modules/filters/all/tags.js
$:/core/modules/filters/all/tiddlers.js
$:/core/modules/filters/backlinks.js
$:/core/modules/filters/before.js
$:/core/modules/filters/commands.js
$:/core/modules/filters/compare.js
$:/core/modules/filters/contains.js
$:/core/modules/filters/count.js
$:/core/modules/filters/crypto.js
$:/core/modules/filters/days.js
$:/core/modules/filters/decodeuricomponent.js
$:/core/modules/filters/deserialize.js
$:/core/modules/filters/deserializers.js
$:/core/modules/filters/duplicateslugs.js
$:/core/modules/filters/each.js
$:/core/modules/filters/eachday.js
$:/core/modules/filters/editiondescription.js
$:/core/modules/filters/editions.js
$:/core/modules/filters/else.js
$:/core/modules/filters/enlist.js
$:/core/modules/filters/field.js
$:/core/modules/filters/fields.js
$:/core/modules/filters/filter.js
$:/core/modules/filters/format.js
$:/core/modules/filters/format/date.js
$:/core/modules/filters/format/json.js
$:/core/modules/filters/format/relativedate.js
$:/core/modules/filters/format/timestamp.js
$:/core/modules/filters/format/titlelist.js
$:/core/modules/filters/function.js
$:/core/modules/filters/get.js
$:/core/modules/filters/getindex.js
$:/core/modules/filters/getvariable.js
$:/core/modules/filters/has.js
$:/core/modules/filters/haschanged.js
$:/core/modules/filters/indexes.js
$:/core/modules/filters/insertafter.js
$:/core/modules/filters/insertbefore.js
$:/core/modules/filters/is.js
$:/core/modules/filters/is/binary.js
$:/core/modules/filters/is/blank.js
$:/core/modules/filters/is/current.js
$:/core/modules/filters/is/draft.js
$:/core/modules/filters/is/image.js
$:/core/modules/filters/is/missing.js
$:/core/modules/filters/is/orphan.js
$:/core/modules/filters/is/shadow.js
$:/core/modules/filters/is/system.js
$:/core/modules/filters/is/tag.js
$:/core/modules/filters/is/tiddler.js
$:/core/modules/filters/is/variable.js
$:/core/modules/filters/json-ops.js
$:/core/modules/filters/limit.js
$:/core/modules/filters/links.js
$:/core/modules/filters/list.js
$:/core/modules/filters/listed.js
$:/core/modules/filters/listops.js
$:/core/modules/filters/lookup.js
$:/core/modules/filters/match.js
$:/core/modules/filters/math.js
$:/core/modules/filters/minlength.js
$:/core/modules/filters/moduleproperty.js
$:/core/modules/filters/modules.js
$:/core/modules/filters/moduletypes.js
$:/core/modules/filters/next.js
$:/core/modules/filters/plugintiddlers.js
$:/core/modules/filters/prefix.js
$:/core/modules/filters/previous.js
$:/core/modules/filters/range.js
$:/core/modules/filters/reduce.js
$:/core/modules/filters/regexp.js
$:/core/modules/filters/removeprefix.js
$:/core/modules/filters/removesuffix.js
$:/core/modules/filters/sameday.js
$:/core/modules/filters/search.js
$:/core/modules/filters/shadowsource.js
$:/core/modules/filters/slugify.js
$:/core/modules/filters/sort.js
$:/core/modules/filters/sortsub.js
$:/core/modules/filters/splitbefore.js
$:/core/modules/filters/storyviews.js
$:/core/modules/filters/strings.js
$:/core/modules/filters/subfilter.js
$:/core/modules/filters/substitute.js
$:/core/modules/filters/subtiddlerfields.js
$:/core/modules/filters/suffix.js
$:/core/modules/filters/tag.js
$:/core/modules/filters/tagging.js
$:/core/modules/filters/tags.js
$:/core/modules/filters/then.js
$:/core/modules/filters/title.js
$:/core/modules/filters/unknown.js
$:/core/modules/filters/untagged.js
$:/core/modules/filters/variables.js
$:/core/modules/filters/wikiparserrules.js
$:/core/modules/filters/x-listops.js
$:/core/modules/indexers/backlinks-indexer.js
$:/core/modules/indexers/field-indexer.js
$:/core/modules/indexers/tag-indexer.js
$:/core/modules/info/platform.js
$:/core/modules/keyboard.js
$:/core/modules/language.js
$:/core/modules/macros/changecount.js
$:/core/modules/macros/contrastcolour.js
$:/core/modules/macros/csvtiddlers.js
$:/core/modules/macros/displayshortcuts.js
$:/core/modules/macros/jsontiddler.js
$:/core/modules/macros/jsontiddlers.js
$:/core/modules/macros/makedatauri.js
$:/core/modules/macros/now.js
$:/core/modules/macros/qualify.js
$:/core/modules/macros/resolvepath.js
$:/core/modules/macros/unusedtitle.js
$:/core/modules/macros/version.js
$:/core/modules/parsers/audioparser.js
$:/core/modules/parsers/binaryparser.js
$:/core/modules/parsers/csvparser.js
$:/core/modules/parsers/htmlparser.js
$:/core/modules/parsers/imageparser.js
$:/core/modules/parsers/pdfparser.js
$:/core/modules/parsers/textparser.js
$:/core/modules/parsers/videoparser.js
$:/core/modules/parsers/wikiparser/rules/codeblock.js
$:/core/modules/parsers/wikiparser/rules/codeinline.js
$:/core/modules/parsers/wikiparser/rules/commentblock.js
$:/core/modules/parsers/wikiparser/rules/commentinline.js
$:/core/modules/parsers/wikiparser/rules/dash.js
$:/core/modules/parsers/wikiparser/rules/emphasis/bold.js
$:/core/modules/parsers/wikiparser/rules/emphasis/italic.js
$:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js
$:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js
$:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js
$:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js
$:/core/modules/parsers/wikiparser/rules/entity.js
$:/core/modules/parsers/wikiparser/rules/extlink.js
$:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js
$:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js
$:/core/modules/parsers/wikiparser/rules/fnprocdef.js
$:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js
$:/core/modules/parsers/wikiparser/rules/heading.js
$:/core/modules/parsers/wikiparser/rules/horizrule.js
$:/core/modules/parsers/wikiparser/rules/html.js
$:/core/modules/parsers/wikiparser/rules/image.js
$:/core/modules/parsers/wikiparser/rules/import.js
$:/core/modules/parsers/wikiparser/rules/list.js
$:/core/modules/parsers/wikiparser/rules/macrocallblock.js
$:/core/modules/parsers/wikiparser/rules/macrocallinline.js
$:/core/modules/parsers/wikiparser/rules/macrodef.js
$:/core/modules/parsers/wikiparser/rules/parameters.js
$:/core/modules/parsers/wikiparser/rules/parsermode.js
$:/core/modules/parsers/wikiparser/rules/prettyextlink.js
$:/core/modules/parsers/wikiparser/rules/prettylink.js
$:/core/modules/parsers/wikiparser/rules/quoteblock.js
$:/core/modules/parsers/wikiparser/rules/rules.js
$:/core/modules/parsers/wikiparser/rules/styleblock.js
$:/core/modules/parsers/wikiparser/rules/styleinline.js
$:/core/modules/parsers/wikiparser/rules/syslink.js
$:/core/modules/parsers/wikiparser/rules/table.js
$:/core/modules/parsers/wikiparser/rules/transcludeblock.js
$:/core/modules/parsers/wikiparser/rules/transcludeinline.js
$:/core/modules/parsers/wikiparser/rules/typedblock.js
$:/core/modules/parsers/wikiparser/rules/whitespace.js
$:/core/modules/parsers/wikiparser/rules/wikilink.js
$:/core/modules/parsers/wikiparser/rules/wikilinkprefix.js
$:/core/modules/parsers/wikiparser/rules/wikirulebase.js
$:/core/modules/parsers/wikiparser/wikiparser.js
$:/core/modules/pluginswitcher.js
$:/core/modules/saver-handler.js
$:/core/modules/savers/andtidwiki.js
$:/core/modules/savers/custom.js
$:/core/modules/savers/download.js
$:/core/modules/savers/fsosaver.js
$:/core/modules/savers/gitea.js
$:/core/modules/savers/github.js
$:/core/modules/savers/gitlab.js
$:/core/modules/savers/manualdownload.js
$:/core/modules/savers/msdownload.js
$:/core/modules/savers/nodewebkit.js
$:/core/modules/savers/put.js
$:/core/modules/savers/tiddlyfox.js
$:/core/modules/savers/tiddlyie.js
$:/core/modules/savers/twedit.js
$:/core/modules/savers/upload.js
$:/core/modules/server/authenticators/basic.js
$:/core/modules/server/authenticators/header.js
$:/core/modules/server/routes/delete-tiddler.js
$:/core/modules/server/routes/get-favicon.js
$:/core/modules/server/routes/get-file.js
$:/core/modules/server/routes/get-index.js
$:/core/modules/server/routes/get-login-basic.js
$:/core/modules/server/routes/get-status.js
$:/core/modules/server/routes/get-tiddler-html.js
$:/core/modules/server/routes/get-tiddler.js
$:/core/modules/server/routes/get-tiddlers-json.js
$:/core/modules/server/routes/put-tiddler.js
$:/core/modules/server/server.js
$:/core/modules/startup.js
$:/core/modules/startup/commands.js
$:/core/modules/startup/favicon.js
$:/core/modules/startup/info.js
$:/core/modules/startup/load-modules.js
$:/core/modules/startup/password.js
$:/core/modules/startup/plugins.js
$:/core/modules/startup/render.js
$:/core/modules/startup/rootwidget.js
$:/core/modules/startup/story.js
$:/core/modules/startup/windows.js
$:/core/modules/story.js
$:/core/modules/storyviews/classic.js
$:/core/modules/storyviews/pop.js
$:/core/modules/storyviews/zoomin.js
$:/core/modules/syncer.js
$:/core/modules/tiddler.js
$:/core/modules/upgraders/plugins.js
$:/core/modules/upgraders/system.js
$:/core/modules/upgraders/themetweaks.js
$:/core/modules/utils/base64-utf8/base64-utf8.module.js
$:/core/modules/utils/crypto.js
$:/core/modules/utils/csv.js
$:/core/modules/utils/diff-match-patch/diff_match_patch.js
$:/core/modules/utils/dom.js
$:/core/modules/utils/dom/animations/slide.js
$:/core/modules/utils/dom/animator.js
$:/core/modules/utils/dom/browser.js
$:/core/modules/utils/dom/csscolorparser.js
$:/core/modules/utils/dom/dragndrop.js
$:/core/modules/utils/dom/http.js
$:/core/modules/utils/dom/keyboard.js
$:/core/modules/utils/dom/modal.js
$:/core/modules/utils/dom/notifier.js
$:/core/modules/utils/dom/popup.js
$:/core/modules/utils/dom/scroller.js
$:/core/modules/utils/edition-info.js
$:/core/modules/utils/escapecss.js
$:/core/modules/utils/fakedom.js
$:/core/modules/utils/filesystem.js
$:/core/modules/utils/linkedlist.js
$:/core/modules/utils/logger.js
$:/core/modules/utils/parsetree.js
$:/core/modules/utils/parseutils.js
$:/core/modules/utils/performance.js
$:/core/modules/utils/pluginmaker.js
$:/core/modules/utils/transliterate.js
$:/core/modules/utils/utils.js
$:/core/modules/widgets/action-confirm.js
$:/core/modules/widgets/action-createtiddler.js
$:/core/modules/widgets/action-deletefield.js
$:/core/modules/widgets/action-deletetiddler.js
$:/core/modules/widgets/action-listops.js
$:/core/modules/widgets/action-log.js
$:/core/modules/widgets/action-navigate.js
$:/core/modules/widgets/action-popup.js
$:/core/modules/widgets/action-sendmessage.js
$:/core/modules/widgets/action-setfield.js
$:/core/modules/widgets/action-setmultiplefields.js
$:/core/modules/widgets/browse.js
$:/core/modules/widgets/button.js
$:/core/modules/widgets/checkbox.js
$:/core/modules/widgets/codeblock.js
$:/core/modules/widgets/count.js
$:/core/modules/widgets/diff-text.js
$:/core/modules/widgets/draggable.js
$:/core/modules/widgets/droppable.js
$:/core/modules/widgets/dropzone.js
$:/core/modules/widgets/edit-binary.js
$:/core/modules/widgets/edit-bitmap.js
$:/core/modules/widgets/edit-shortcut.js
$:/core/modules/widgets/edit-text.js
$:/core/modules/widgets/edit.js
$:/core/modules/widgets/element.js
$:/core/modules/widgets/encrypt.js
$:/core/modules/widgets/entity.js
$:/core/modules/widgets/error.js
$:/core/modules/widgets/eventcatcher.js
$:/core/modules/widgets/fieldmangler.js
$:/core/modules/widgets/fields.js
$:/core/modules/widgets/fill.js
$:/core/modules/widgets/genesis.js
$:/core/modules/widgets/image.js
$:/core/modules/widgets/importvariables.js
$:/core/modules/widgets/jsontiddler.js
$:/core/modules/widgets/keyboard.js
$:/core/modules/widgets/let.js
$:/core/modules/widgets/link.js
$:/core/modules/widgets/linkcatcher.js
$:/core/modules/widgets/list.js
$:/core/modules/widgets/log.js
$:/core/modules/widgets/macrocall.js
$:/core/modules/widgets/messagecatcher.js
$:/core/modules/widgets/navigator.js
$:/core/modules/widgets/parameters.js
$:/core/modules/widgets/password.js
$:/core/modules/widgets/qualify.js
$:/core/modules/widgets/radio.js
$:/core/modules/widgets/range.js
$:/core/modules/widgets/raw.js
$:/core/modules/widgets/reveal.js
$:/core/modules/widgets/scrollable.js
$:/core/modules/widgets/select.js
$:/core/modules/widgets/set.js
$:/core/modules/widgets/setmultiplevariables.js
$:/core/modules/widgets/slot.js
$:/core/modules/widgets/text.js
$:/core/modules/widgets/tiddler.js
$:/core/modules/widgets/transclude.js
$:/core/modules/widgets/vars.js
$:/core/modules/widgets/view.js
$:/core/modules/widgets/widget.js
$:/core/modules/widgets/wikify.js
$:/core/modules/wiki-bulkops.js
$:/core/modules/wiki.js
$:/core/readme
$:/core/save/all
$:/core/save/all-external-js
$:/core/save/empty
$:/core/save/lazy-all
$:/core/save/lazy-images
$:/core/save/offline-external-js
$:/core/templates/alltiddlers.template.html
$:/core/templates/canonical-uri-external-image
$:/core/templates/canonical-uri-external-raw
$:/core/templates/canonical-uri-external-text
$:/core/templates/css-tiddler
$:/core/templates/exporters/CsvFile
$:/core/templates/exporters/JsonFile
$:/core/templates/exporters/StaticRiver
$:/core/templates/exporters/StaticRiver/Content
$:/core/templates/exporters/TidFile
$:/core/templates/html-div-skinny-tiddler
$:/core/templates/html-div-tiddler
$:/core/templates/html-json-skinny-tiddler
$:/core/templates/html-json-tiddler
$:/core/templates/html-tiddler
$:/core/templates/javascript-tiddler
$:/core/templates/json-tiddler
$:/core/templates/module-tiddler
$:/core/templates/MOTW.html
$:/core/templates/plain-text-tiddler
$:/core/templates/raw-static-tiddler
$:/core/templates/server/static.sidebar.wikitext
$:/core/templates/server/static.tiddler.html
$:/core/templates/server/static.tiddler.wikitext
$:/core/templates/single.tiddler.window
$:/core/templates/split-recipe
$:/core/templates/static-tiddler
$:/core/templates/static.area
$:/core/templates/static.content
$:/core/templates/static.template.css
$:/core/templates/static.template.html
$:/core/templates/static.tiddler.html
$:/core/templates/store.area.template.html
$:/core/templates/tid-tiddler
$:/core/templates/tiddler-metadata
$:/core/templates/tiddlywiki.js/load-tiddler
$:/core/templates/tiddlywiki5-external-js.html
$:/core/templates/tiddlywiki5.html
$:/core/templates/tiddlywiki5.js
$:/core/templates/tiddlywiki5.js/tiddlers
$:/core/templates/version
$:/core/templates/wikified-tiddler
$:/core/ui/AboveStory/tw2-plugin-check
$:/core/ui/Actions/new-image
$:/core/ui/Actions/new-journal
$:/core/ui/Actions/new-tiddler
$:/core/ui/AdvancedSearch/Filter
$:/core/ui/AdvancedSearch/Filter/FilterButtons/clear
$:/core/ui/AdvancedSearch/Filter/FilterButtons/delete
$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown
$:/core/ui/AdvancedSearch/Filter/FilterButtons/export
$:/core/ui/AdvancedSearch/Shadows
$:/core/ui/AdvancedSearch/Standard
$:/core/ui/AdvancedSearch/System
$:/core/ui/AlertTemplate
$:/core/ui/BinaryWarning
$:/core/ui/Buttons/advanced-search
$:/core/ui/Buttons/cancel
$:/core/ui/Buttons/clone
$:/core/ui/Buttons/close
$:/core/ui/Buttons/close-all
$:/core/ui/Buttons/close-others
$:/core/ui/Buttons/control-panel
$:/core/ui/Buttons/delete
$:/core/ui/Buttons/edit
$:/core/ui/Buttons/encryption
$:/core/ui/Buttons/export-page
$:/core/ui/Buttons/export-tiddler
$:/core/ui/Buttons/fold
$:/core/ui/Buttons/fold-all
$:/core/ui/Buttons/fold-bar
$:/core/ui/Buttons/fold-others
$:/core/ui/Buttons/full-screen
$:/core/ui/Buttons/home
$:/core/ui/Buttons/import
$:/core/ui/Buttons/info
$:/core/ui/Buttons/language
$:/core/ui/Buttons/layout
$:/core/ui/Buttons/manager
$:/core/ui/Buttons/more-page-actions
$:/core/ui/Buttons/more-tiddler-actions
$:/core/ui/Buttons/network-activity
$:/core/ui/Buttons/new-here
$:/core/ui/Buttons/new-image
$:/core/ui/Buttons/new-journal
$:/core/ui/Buttons/new-journal-here
$:/core/ui/Buttons/new-tiddler
$:/core/ui/Buttons/open-window
$:/core/ui/Buttons/palette
$:/core/ui/Buttons/permalink
$:/core/ui/Buttons/permaview
$:/core/ui/Buttons/print
$:/core/ui/Buttons/refresh
$:/core/ui/Buttons/save
$:/core/ui/Buttons/save-wiki
$:/core/ui/Buttons/storyview
$:/core/ui/Buttons/tag-manager
$:/core/ui/Buttons/theme
$:/core/ui/Buttons/timestamp
$:/core/ui/Buttons/unfold-all
$:/core/ui/Components/plugin-info
$:/core/ui/Components/tag-link
$:/core/ui/ControlPanel/Advanced
$:/core/ui/ControlPanel/Appearance
$:/core/ui/ControlPanel/Basics
$:/core/ui/ControlPanel/Cascades
$:/core/ui/ControlPanel/EditorTypes
$:/core/ui/ControlPanel/EditTemplateBody
$:/core/ui/ControlPanel/FieldEditor
$:/core/ui/ControlPanel/Info
$:/core/ui/ControlPanel/KeyboardShortcuts
$:/core/ui/ControlPanel/LoadedModules
$:/core/ui/ControlPanel/Modals/AddPlugins
$:/core/ui/ControlPanel/Palette
$:/core/ui/ControlPanel/Parsing
$:/core/ui/ControlPanel/Plugins
$:/core/ui/ControlPanel/Plugins/Add/Languages
$:/core/ui/ControlPanel/Plugins/Add/Plugins
$:/core/ui/ControlPanel/Plugins/Add/Themes
$:/core/ui/ControlPanel/Plugins/Add/Updates
$:/core/ui/ControlPanel/Plugins/AddPlugins
$:/core/ui/ControlPanel/Plugins/Installed/Languages
$:/core/ui/ControlPanel/Plugins/Installed/Plugins
$:/core/ui/ControlPanel/Plugins/Installed/Themes
$:/core/ui/ControlPanel/Saving
$:/core/ui/ControlPanel/Saving/DownloadSaver
$:/core/ui/ControlPanel/Saving/General
$:/core/ui/ControlPanel/Saving/Gitea
$:/core/ui/ControlPanel/Saving/GitHub
$:/core/ui/ControlPanel/Saving/GitLab
$:/core/ui/ControlPanel/Saving/TiddlySpot
$:/core/ui/ControlPanel/Settings
$:/core/ui/ControlPanel/Settings/CamelCase
$:/core/ui/ControlPanel/Settings/DefaultMoreSidebarTab
$:/core/ui/ControlPanel/Settings/DefaultSidebarTab
$:/core/ui/ControlPanel/Settings/EditorToolbar
$:/core/ui/ControlPanel/Settings/InfoPanelMode
$:/core/ui/ControlPanel/Settings/LinkToBehaviour
$:/core/ui/ControlPanel/Settings/MissingLinks
$:/core/ui/ControlPanel/Settings/NavigationAddressBar
$:/core/ui/ControlPanel/Settings/NavigationHistory
$:/core/ui/ControlPanel/Settings/NavigationPermalinkviewMode
$:/core/ui/ControlPanel/Settings/PerformanceInstrumentation
$:/core/ui/ControlPanel/Settings/TiddlyWiki
$:/core/ui/ControlPanel/Settings/TitleLinks
$:/core/ui/ControlPanel/Settings/ToolbarButtons
$:/core/ui/ControlPanel/Settings/ToolbarButtonStyle
$:/core/ui/ControlPanel/StoryTiddler
$:/core/ui/ControlPanel/StoryView
$:/core/ui/ControlPanel/Stylesheets
$:/core/ui/ControlPanel/Theme
$:/core/ui/ControlPanel/TiddlerColour
$:/core/ui/ControlPanel/TiddlerFields
$:/core/ui/ControlPanel/TiddlerIcon
$:/core/ui/ControlPanel/Toolbars
$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate
$:/core/ui/ControlPanel/Toolbars/EditorToolbar
$:/core/ui/ControlPanel/Toolbars/EditToolbar
$:/core/ui/ControlPanel/Toolbars/ItemTemplate
$:/core/ui/ControlPanel/Toolbars/PageControls
$:/core/ui/ControlPanel/Toolbars/ViewToolbar
$:/core/ui/ControlPanel/ViewTemplateBody
$:/core/ui/ControlPanel/ViewTemplateTitle
$:/core/ui/DefaultSearchResultList
$:/core/ui/DownloadFullWiki
$:/core/ui/EditorToolbar/bold
$:/core/ui/EditorToolbar/clear
$:/core/ui/EditorToolbar/clear-dropdown
$:/core/ui/EditorToolbar/editor-height
$:/core/ui/EditorToolbar/editor-height-dropdown
$:/core/ui/EditorToolbar/excise
$:/core/ui/EditorToolbar/excise-dropdown
$:/core/ui/EditorToolbar/file-import
$:/core/ui/EditorToolbar/heading-1
$:/core/ui/EditorToolbar/heading-2
$:/core/ui/EditorToolbar/heading-3
$:/core/ui/EditorToolbar/heading-4
$:/core/ui/EditorToolbar/heading-5
$:/core/ui/EditorToolbar/heading-6
$:/core/ui/EditorToolbar/italic
$:/core/ui/EditorToolbar/line-width
$:/core/ui/EditorToolbar/line-width-dropdown
$:/core/ui/EditorToolbar/link
$:/core/ui/EditorToolbar/link-dropdown
$:/core/ui/EditorToolbar/linkify
$:/core/ui/EditorToolbar/list-bullet
$:/core/ui/EditorToolbar/list-number
$:/core/ui/EditorToolbar/mono-block
$:/core/ui/EditorToolbar/mono-line
$:/core/ui/EditorToolbar/more
$:/core/ui/EditorToolbar/more-dropdown
$:/core/ui/EditorToolbar/opacity
$:/core/ui/EditorToolbar/opacity-dropdown
$:/core/ui/EditorToolbar/paint
$:/core/ui/EditorToolbar/paint-dropdown
$:/core/ui/EditorToolbar/picture
$:/core/ui/EditorToolbar/picture-dropdown
$:/core/ui/EditorToolbar/preview
$:/core/ui/EditorToolbar/preview-type
$:/core/ui/EditorToolbar/preview-type-dropdown
$:/core/ui/EditorToolbar/quote
$:/core/ui/EditorToolbar/rotate-left
$:/core/ui/EditorToolbar/size
$:/core/ui/EditorToolbar/size-dropdown
$:/core/ui/EditorToolbar/stamp
$:/core/ui/EditorToolbar/stamp-dropdown
$:/core/ui/EditorToolbar/StampDropdown/ItemTemplate
$:/core/ui/EditorToolbar/strikethrough
$:/core/ui/EditorToolbar/subscript
$:/core/ui/EditorToolbar/superscript
$:/core/ui/EditorToolbar/transcludify
$:/core/ui/EditorToolbar/underline
$:/core/ui/EditTemplate
$:/core/ui/EditTemplate/body
$:/core/ui/EditTemplate/body/canonical-uri
$:/core/ui/EditTemplate/body/default
$:/core/ui/EditTemplate/body/editor
$:/core/ui/EditTemplate/body/preview/diffs-current
$:/core/ui/EditTemplate/body/preview/diffs-shadow
$:/core/ui/EditTemplate/body/preview/output
$:/core/ui/EditTemplate/body/toolbar/button
$:/core/ui/EditTemplate/controls
$:/core/ui/EditTemplate/fieldEditor/default
$:/core/ui/EditTemplate/fields
$:/core/ui/EditTemplate/shadow
$:/core/ui/EditTemplate/tags
$:/core/ui/EditTemplate/title
$:/core/ui/EditTemplate/type
$:/core/ui/ExportTiddlyWikiCore
$:/core/ui/ImportListing
$:/core/ui/ImportPreviews/Diff
$:/core/ui/ImportPreviews/DiffFields
$:/core/ui/ImportPreviews/Fields
$:/core/ui/ImportPreviews/Text
$:/core/ui/ImportPreviews/TextRaw
$:/core/ui/KeyboardShortcuts/advanced-search
$:/core/ui/KeyboardShortcuts/change-sidebar-layout
$:/core/ui/KeyboardShortcuts/new-image
$:/core/ui/KeyboardShortcuts/new-journal
$:/core/ui/KeyboardShortcuts/new-tiddler
$:/core/ui/KeyboardShortcuts/save-wiki
$:/core/ui/KeyboardShortcuts/sidebar-search
$:/core/ui/KeyboardShortcuts/switcher
$:/core/ui/KeyboardShortcuts/toggle-sidebar
$:/core/ui/ListItemTemplate
$:/core/ui/MissingTemplate
$:/core/ui/MoreSideBar/All
$:/core/ui/MoreSideBar/Drafts
$:/core/ui/MoreSideBar/Explorer
$:/core/ui/MoreSideBar/Missing
$:/core/ui/MoreSideBar/Orphans
$:/core/ui/MoreSideBar/Plugins
$:/core/ui/MoreSideBar/Plugins/Languages
$:/core/ui/MoreSideBar/Plugins/Plugins
$:/core/ui/MoreSideBar/Plugins/Theme
$:/core/ui/MoreSideBar/Recent
$:/core/ui/MoreSideBar/Shadows
$:/core/ui/MoreSideBar/System
$:/core/ui/MoreSideBar/Tags
$:/core/ui/MoreSideBar/Types
$:/core/ui/PageStylesheet
$:/core/ui/PageTemplate
$:/core/ui/PageTemplate/alerts
$:/core/ui/PageTemplate/drafts
$:/core/ui/PageTemplate/pagecontrols
$:/core/ui/PageTemplate/pluginreloadwarning
$:/core/ui/PageTemplate/sidebar
$:/core/ui/PageTemplate/story
$:/core/ui/PageTemplate/topleftbar
$:/core/ui/PageTemplate/toprightbar
$:/core/ui/PluginInfo
$:/core/ui/PluginInfo/Default/contents
$:/core/ui/PluginListItemTemplate
$:/core/ui/RootTemplate
$:/core/ui/SearchResults
$:/core/ui/SideBar/More
$:/core/ui/SideBar/Open
$:/core/ui/SideBar/Recent
$:/core/ui/SideBar/Tools
$:/core/ui/SideBarLists
$:/core/ui/SideBarSegments/page-controls
$:/core/ui/SideBarSegments/search
$:/core/ui/SideBarSegments/site-subtitle
$:/core/ui/SideBarSegments/site-title
$:/core/ui/SideBarSegments/tabs
$:/core/ui/StoryTiddlerTemplate
$:/core/ui/SwitcherModal
$:/core/ui/TagPickerTagTemplate
$:/core/ui/TagTemplate
$:/core/ui/TiddlerFields
$:/core/ui/TiddlerFieldTemplate
$:/core/ui/TiddlerIcon
$:/core/ui/TiddlerInfo
$:/core/ui/TiddlerInfo/Advanced
$:/core/ui/TiddlerInfo/Advanced/PluginInfo
$:/core/ui/TiddlerInfo/Advanced/ShadowInfo
$:/core/ui/TiddlerInfo/Fields
$:/core/ui/TiddlerInfo/List
$:/core/ui/TiddlerInfo/Listed
$:/core/ui/TiddlerInfo/References
$:/core/ui/TiddlerInfo/Tagging
$:/core/ui/TiddlerInfo/Tools
$:/core/ui/TopBar/menu
$:/core/ui/UntaggedTemplate
$:/core/ui/ViewTemplate
$:/core/ui/ViewTemplate/body
$:/core/ui/ViewTemplate/body/blank
$:/core/ui/ViewTemplate/body/code
$:/core/ui/ViewTemplate/body/default
$:/core/ui/ViewTemplate/body/import
$:/core/ui/ViewTemplate/body/plugin
$:/core/ui/ViewTemplate/body/rendered-plain-text
$:/core/ui/ViewTemplate/classic
$:/core/ui/ViewTemplate/subtitle
$:/core/ui/ViewTemplate/subtitle/modified
$:/core/ui/ViewTemplate/subtitle/modifier
$:/core/ui/ViewTemplate/tags
$:/core/ui/ViewTemplate/title
$:/core/ui/ViewTemplate/title/default
$:/core/ui/ViewTemplate/title/system
$:/core/ui/ViewTemplate/unfold
$:/core/ui/VisibleTransclude
$:/core/wiki/title
$:/DefaultTiddlers
$:/info/browser
$:/info/node
$:/info/startup-timestamp
$:/language
$:/language/AboveStory/ClassicPlugin/Warning
$:/language/BinaryWarning/Prompt
$:/language/Buttons/AdvancedSearch/Caption
$:/language/Buttons/AdvancedSearch/Hint
$:/language/Buttons/Bold/Caption
$:/language/Buttons/Bold/Hint
$:/language/Buttons/Cancel/Caption
$:/language/Buttons/Cancel/Hint
$:/language/Buttons/Clear/Caption
$:/language/Buttons/Clear/Hint
$:/language/Buttons/Clone/Caption
$:/language/Buttons/Clone/Hint
$:/language/Buttons/Close/Caption
$:/language/Buttons/Close/Hint
$:/language/Buttons/CloseAll/Caption
$:/language/Buttons/CloseAll/Hint
$:/language/Buttons/CloseOthers/Caption
$:/language/Buttons/CloseOthers/Hint
$:/language/Buttons/ControlPanel/Caption
$:/language/Buttons/ControlPanel/Hint
$:/language/Buttons/CopyToClipboard/Caption
$:/language/Buttons/CopyToClipboard/Hint
$:/language/Buttons/Delete/Caption
$:/language/Buttons/Delete/Hint
$:/language/Buttons/DeleteTiddlers/Caption
$:/language/Buttons/DeleteTiddlers/Hint
$:/language/Buttons/Edit/Caption
$:/language/Buttons/Edit/Hint
$:/language/Buttons/EditorHeight/Caption
$:/language/Buttons/EditorHeight/Caption/Auto
$:/language/Buttons/EditorHeight/Caption/Fixed
$:/language/Buttons/EditorHeight/Hint
$:/language/Buttons/Encryption/Caption
$:/language/Buttons/Encryption/ClearPassword/Caption
$:/language/Buttons/Encryption/ClearPassword/Hint
$:/language/Buttons/Encryption/Hint
$:/language/Buttons/Encryption/SetPassword/Caption
$:/language/Buttons/Encryption/SetPassword/Hint
$:/language/Buttons/Excise/Caption
$:/language/Buttons/Excise/Caption/Excise
$:/language/Buttons/Excise/Caption/MacroName
$:/language/Buttons/Excise/Caption/NewTitle
$:/language/Buttons/Excise/Caption/Replace
$:/language/Buttons/Excise/Caption/Replace/Link
$:/language/Buttons/Excise/Caption/Replace/Macro
$:/language/Buttons/Excise/Caption/Replace/Transclusion
$:/language/Buttons/Excise/Caption/Tag
$:/language/Buttons/Excise/Caption/TiddlerExists
$:/language/Buttons/Excise/Hint
$:/language/Buttons/ExportPage/Caption
$:/language/Buttons/ExportPage/Hint
$:/language/Buttons/ExportTiddler/Caption
$:/language/Buttons/ExportTiddler/Hint
$:/language/Buttons/ExportTiddlers/Caption
$:/language/Buttons/ExportTiddlers/Hint
$:/language/Buttons/Fold/Caption
$:/language/Buttons/Fold/FoldBar/Caption
$:/language/Buttons/Fold/FoldBar/Hint
$:/language/Buttons/Fold/Hint
$:/language/Buttons/FoldAll/Caption
$:/language/Buttons/FoldAll/Hint
$:/language/Buttons/FoldOthers/Caption
$:/language/Buttons/FoldOthers/Hint
$:/language/Buttons/FullScreen/Caption
$:/language/Buttons/FullScreen/Hint
$:/language/Buttons/Heading1/Caption
$:/language/Buttons/Heading1/Hint
$:/language/Buttons/Heading2/Caption
$:/language/Buttons/Heading2/Hint
$:/language/Buttons/Heading3/Caption
$:/language/Buttons/Heading3/Hint
$:/language/Buttons/Heading4/Caption
$:/language/Buttons/Heading4/Hint
$:/language/Buttons/Heading5/Caption
$:/language/Buttons/Heading5/Hint
$:/language/Buttons/Heading6/Caption
$:/language/Buttons/Heading6/Hint
$:/language/Buttons/Help/Caption
$:/language/Buttons/Help/Hint
$:/language/Buttons/HideSideBar/Caption
$:/language/Buttons/HideSideBar/Hint
$:/language/Buttons/Home/Caption
$:/language/Buttons/Home/Hint
$:/language/Buttons/Import/Caption
$:/language/Buttons/Import/Hint
$:/language/Buttons/Info/Caption
$:/language/Buttons/Info/Hint
$:/language/Buttons/Italic/Caption
$:/language/Buttons/Italic/Hint
$:/language/Buttons/Language/Caption
$:/language/Buttons/Language/Hint
$:/language/Buttons/LayoutSwitcher/Caption
$:/language/Buttons/LayoutSwitcher/Hint
$:/language/Buttons/LineWidth/Caption
$:/language/Buttons/LineWidth/Hint
$:/language/Buttons/Link/Caption
$:/language/Buttons/Link/Hint
$:/language/Buttons/Linkify/Caption
$:/language/Buttons/Linkify/Hint
$:/language/Buttons/ListBullet/Caption
$:/language/Buttons/ListBullet/Hint
$:/language/Buttons/ListNumber/Caption
$:/language/Buttons/ListNumber/Hint
$:/language/Buttons/Manager/Caption
$:/language/Buttons/Manager/Hint
$:/language/Buttons/MonoBlock/Caption
$:/language/Buttons/MonoBlock/Hint
$:/language/Buttons/MonoLine/Caption
$:/language/Buttons/MonoLine/Hint
$:/language/Buttons/More/Caption
$:/language/Buttons/More/Hint
$:/language/Buttons/NetworkActivity/Caption
$:/language/Buttons/NetworkActivity/Hint
$:/language/Buttons/NewHere/Caption
$:/language/Buttons/NewHere/Hint
$:/language/Buttons/NewImage/Caption
$:/language/Buttons/NewImage/Hint
$:/language/Buttons/NewJournal/Caption
$:/language/Buttons/NewJournal/Hint
$:/language/Buttons/NewJournalHere/Caption
$:/language/Buttons/NewJournalHere/Hint
$:/language/Buttons/NewMarkdown/Caption
$:/language/Buttons/NewMarkdown/Hint
$:/language/Buttons/NewTiddler/Caption
$:/language/Buttons/NewTiddler/Hint
$:/language/Buttons/Opacity/Caption
$:/language/Buttons/Opacity/Hint
$:/language/Buttons/OpenWindow/Caption
$:/language/Buttons/OpenWindow/Hint
$:/language/Buttons/Paint/Caption
$:/language/Buttons/Paint/Hint
$:/language/Buttons/Palette/Caption
$:/language/Buttons/Palette/Hint
$:/language/Buttons/Permalink/Caption
$:/language/Buttons/Permalink/Hint
$:/language/Buttons/Permaview/Caption
$:/language/Buttons/Permaview/Hint
$:/language/Buttons/Picture/Caption
$:/language/Buttons/Picture/Hint
$:/language/Buttons/Preview/Caption
$:/language/Buttons/Preview/Hint
$:/language/Buttons/PreviewType/Caption
$:/language/Buttons/PreviewType/Hint
$:/language/Buttons/Print/Caption
$:/language/Buttons/Print/Hint
$:/language/Buttons/Quote/Caption
$:/language/Buttons/Quote/Hint
$:/language/Buttons/Refresh/Caption
$:/language/Buttons/Refresh/Hint
$:/language/Buttons/RotateLeft/Caption
$:/language/Buttons/RotateLeft/Hint
$:/language/Buttons/Save/Caption
$:/language/Buttons/Save/Hint
$:/language/Buttons/SaveWiki/Caption
$:/language/Buttons/SaveWiki/Hint
$:/language/Buttons/ShowSideBar/Caption
$:/language/Buttons/ShowSideBar/Hint
$:/language/Buttons/SidebarSearch/Hint
$:/language/Buttons/Size/Caption
$:/language/Buttons/Size/Caption/Height
$:/language/Buttons/Size/Caption/Resize
$:/language/Buttons/Size/Caption/Width
$:/language/Buttons/Size/Hint
$:/language/Buttons/Stamp/Caption
$:/language/Buttons/Stamp/Caption/New
$:/language/Buttons/Stamp/Hint
$:/language/Buttons/Stamp/New/Text
$:/language/Buttons/Stamp/New/Title
$:/language/Buttons/StoryView/Caption
$:/language/Buttons/StoryView/Hint
$:/language/Buttons/Strikethrough/Caption
$:/language/Buttons/Strikethrough/Hint
$:/language/Buttons/Subscript/Caption
$:/language/Buttons/Subscript/Hint
$:/language/Buttons/Superscript/Caption
$:/language/Buttons/Superscript/Hint
$:/language/Buttons/TagManager/Caption
$:/language/Buttons/TagManager/Hint
$:/language/Buttons/Theme/Caption
$:/language/Buttons/Theme/Hint
$:/language/Buttons/Timestamp/Caption
$:/language/Buttons/Timestamp/Hint
$:/language/Buttons/Timestamp/Off/Caption
$:/language/Buttons/Timestamp/Off/Hint
$:/language/Buttons/Timestamp/On/Caption
$:/language/Buttons/Timestamp/On/Hint
$:/language/Buttons/ToggleSidebar/Hint
$:/language/Buttons/Transcludify/Caption
$:/language/Buttons/Transcludify/Hint
$:/language/Buttons/Underline/Caption
$:/language/Buttons/Underline/Hint
$:/language/Buttons/Unfold/Caption
$:/language/Buttons/Unfold/Hint
$:/language/Buttons/UnfoldAll/Caption
$:/language/Buttons/UnfoldAll/Hint
$:/language/ClassicWarning/Hint
$:/language/ClassicWarning/Upgrade/Caption
$:/language/CloseAll/Button
$:/language/ColourPicker/Recent
$:/language/ConfirmAction
$:/language/ConfirmCancelTiddler
$:/language/ConfirmDeleteTiddler
$:/language/ConfirmDeleteTiddlers
$:/language/ConfirmEditShadowTiddler
$:/language/ConfirmOverwriteTiddler
$:/language/ControlPanel/Advanced/Caption
$:/language/ControlPanel/Advanced/Hint
$:/language/ControlPanel/Appearance/Caption
$:/language/ControlPanel/Appearance/Hint
$:/language/ControlPanel/Basics/AnimDuration/Prompt
$:/language/ControlPanel/Basics/AutoFocus/Prompt
$:/language/ControlPanel/Basics/Caption
$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint
$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt
$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint
$:/language/ControlPanel/Basics/Language/Prompt
$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt
$:/language/ControlPanel/Basics/NewJournal/Text/Prompt
$:/language/ControlPanel/Basics/NewJournal/Title/Prompt
$:/language/ControlPanel/Basics/NewTiddler/Tags/Prompt
$:/language/ControlPanel/Basics/NewTiddler/Title/Prompt
$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt
$:/language/ControlPanel/Basics/RemoveTags
$:/language/ControlPanel/Basics/RemoveTags/Hint
$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt
$:/language/ControlPanel/Basics/Subtitle/Prompt
$:/language/ControlPanel/Basics/SystemTiddlers/Prompt
$:/language/ControlPanel/Basics/Tags/Prompt
$:/language/ControlPanel/Basics/Tiddlers/Prompt
$:/language/ControlPanel/Basics/Title/Prompt
$:/language/ControlPanel/Basics/Username/Prompt
$:/language/ControlPanel/Basics/Version/Prompt
$:/language/ControlPanel/Cascades/Caption
$:/language/ControlPanel/Cascades/Hint
$:/language/ControlPanel/Cascades/TagPrompt
$:/language/ControlPanel/EditorTypes/Caption
$:/language/ControlPanel/EditorTypes/Editor/Caption
$:/language/ControlPanel/EditorTypes/Hint
$:/language/ControlPanel/EditorTypes/Type/Caption
$:/language/ControlPanel/EditTemplateBody/Caption
$:/language/ControlPanel/EditTemplateBody/Hint
$:/language/ControlPanel/FieldEditor/Caption
$:/language/ControlPanel/FieldEditor/Hint
$:/language/ControlPanel/Info/Caption
$:/language/ControlPanel/Info/Hint
$:/language/ControlPanel/KeyboardShortcuts/Add/Caption
$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt
$:/language/ControlPanel/KeyboardShortcuts/Caption
$:/language/ControlPanel/KeyboardShortcuts/Hint
$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption
$:/language/ControlPanel/KeyboardShortcuts/Platform/All
$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux
$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac
$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux
$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac
$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows
$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows
$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint
$:/language/ControlPanel/LayoutSwitcher/Caption
$:/language/ControlPanel/LoadedModules/Caption
$:/language/ControlPanel/LoadedModules/Hint
$:/language/ControlPanel/Palette/Caption
$:/language/ControlPanel/Palette/Editor/Clone/Caption
$:/language/ControlPanel/Palette/Editor/Clone/Prompt
$:/language/ControlPanel/Palette/Editor/Delete/Hint
$:/language/ControlPanel/Palette/Editor/Names/External/Show
$:/language/ControlPanel/Palette/Editor/Prompt
$:/language/ControlPanel/Palette/Editor/Prompt/Modified
$:/language/ControlPanel/Palette/Editor/Reset/Caption
$:/language/ControlPanel/Palette/HideEditor/Caption
$:/language/ControlPanel/Palette/Prompt
$:/language/ControlPanel/Palette/ShowEditor/Caption
$:/language/ControlPanel/Parsing/Block/Caption
$:/language/ControlPanel/Parsing/Caption
$:/language/ControlPanel/Parsing/Hint
$:/language/ControlPanel/Parsing/Inline/Caption
$:/language/ControlPanel/Parsing/Pragma/Caption
$:/language/ControlPanel/Plugins/Add/Caption
$:/language/ControlPanel/Plugins/Add/Hint
$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint
$:/language/ControlPanel/Plugins/AlsoRequires
$:/language/ControlPanel/Plugins/Caption
$:/language/ControlPanel/Plugins/ClosePluginLibrary
$:/language/ControlPanel/Plugins/Disable/Caption
$:/language/ControlPanel/Plugins/Disable/Hint
$:/language/ControlPanel/Plugins/Disabled/Status
$:/language/ControlPanel/Plugins/Downgrade/Caption
$:/language/ControlPanel/Plugins/Empty/Hint
$:/language/ControlPanel/Plugins/Enable/Caption
$:/language/ControlPanel/Plugins/Enable/Hint
$:/language/ControlPanel/Plugins/Install/Caption
$:/language/ControlPanel/Plugins/Installed/Hint
$:/language/ControlPanel/Plugins/Languages/Caption
$:/language/ControlPanel/Plugins/Languages/Hint
$:/language/ControlPanel/Plugins/NoInfoFound/Hint
$:/language/ControlPanel/Plugins/NotInstalled/Hint
$:/language/ControlPanel/Plugins/OpenPluginLibrary
$:/language/ControlPanel/Plugins/Plugins/Caption
$:/language/ControlPanel/Plugins/Plugins/Hint
$:/language/ControlPanel/Plugins/PluginWillRequireReload
$:/language/ControlPanel/Plugins/Reinstall/Caption
$:/language/ControlPanel/Plugins/SubPluginPrompt
$:/language/ControlPanel/Plugins/Themes/Caption
$:/language/ControlPanel/Plugins/Themes/Hint
$:/language/ControlPanel/Plugins/Update/Caption
$:/language/ControlPanel/Plugins/Updates/Caption
$:/language/ControlPanel/Plugins/Updates/Hint
$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption
$:/language/ControlPanel/Saving/Caption
$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description
$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint
$:/language/ControlPanel/Saving/DownloadSaver/Caption
$:/language/ControlPanel/Saving/DownloadSaver/Hint
$:/language/ControlPanel/Saving/General/Caption
$:/language/ControlPanel/Saving/General/Hint
$:/language/ControlPanel/Saving/GitService/Branch
$:/language/ControlPanel/Saving/GitService/CommitMessage
$:/language/ControlPanel/Saving/GitService/Description
$:/language/ControlPanel/Saving/GitService/Filename
$:/language/ControlPanel/Saving/GitService/Gitea/Caption
$:/language/ControlPanel/Saving/GitService/Gitea/Password
$:/language/ControlPanel/Saving/GitService/GitHub/Caption
$:/language/ControlPanel/Saving/GitService/GitHub/Password
$:/language/ControlPanel/Saving/GitService/GitLab/Caption
$:/language/ControlPanel/Saving/GitService/GitLab/Password
$:/language/ControlPanel/Saving/GitService/Path
$:/language/ControlPanel/Saving/GitService/Repo
$:/language/ControlPanel/Saving/GitService/ServerURL
$:/language/ControlPanel/Saving/GitService/UserName
$:/language/ControlPanel/Saving/Hint
$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading
$:/language/ControlPanel/Saving/TiddlySpot/BackupDir
$:/language/ControlPanel/Saving/TiddlySpot/Backups
$:/language/ControlPanel/Saving/TiddlySpot/Caption
$:/language/ControlPanel/Saving/TiddlySpot/ControlPanel
$:/language/ControlPanel/Saving/TiddlySpot/Description
$:/language/ControlPanel/Saving/TiddlySpot/Filename
$:/language/ControlPanel/Saving/TiddlySpot/Heading
$:/language/ControlPanel/Saving/TiddlySpot/Hint
$:/language/ControlPanel/Saving/TiddlySpot/Password
$:/language/ControlPanel/Saving/TiddlySpot/ReadOnly
$:/language/ControlPanel/Saving/TiddlySpot/ServerURL
$:/language/ControlPanel/Saving/TiddlySpot/UploadDir
$:/language/ControlPanel/Saving/TiddlySpot/UserName
$:/language/ControlPanel/Settings/AutoSave/Caption
$:/language/ControlPanel/Settings/AutoSave/Disabled/Description
$:/language/ControlPanel/Settings/AutoSave/Enabled/Description
$:/language/ControlPanel/Settings/AutoSave/Hint
$:/language/ControlPanel/Settings/CamelCase/Caption
$:/language/ControlPanel/Settings/CamelCase/Description
$:/language/ControlPanel/Settings/CamelCase/Hint
$:/language/ControlPanel/Settings/Caption
$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption
$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Hint
$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption
$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint
$:/language/ControlPanel/Settings/EditorToolbar/Caption
$:/language/ControlPanel/Settings/EditorToolbar/Description
$:/language/ControlPanel/Settings/EditorToolbar/Hint
$:/language/ControlPanel/Settings/Hint
$:/language/ControlPanel/Settings/InfoPanelMode/Caption
$:/language/ControlPanel/Settings/InfoPanelMode/Hint
$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description
$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description
$:/language/ControlPanel/Settings/LinkToBehaviour/Caption
$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint
$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove
$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom
$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop
$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow
$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint
$:/language/ControlPanel/Settings/MissingLinks/Caption
$:/language/ControlPanel/Settings/MissingLinks/Description
$:/language/ControlPanel/Settings/MissingLinks/Hint
$:/language/ControlPanel/Settings/NavigationAddressBar/Caption
$:/language/ControlPanel/Settings/NavigationAddressBar/Hint
$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description
$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description
$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description
$:/language/ControlPanel/Settings/NavigationHistory/Caption
$:/language/ControlPanel/Settings/NavigationHistory/Hint
$:/language/ControlPanel/Settings/NavigationHistory/No/Description
$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description
$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption
$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/CopyToClipboard/Description
$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Hint
$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/UpdateAddressBar/Description
$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption
$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description
$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint
$:/language/ControlPanel/Settings/TitleLinks/Caption
$:/language/ControlPanel/Settings/TitleLinks/Hint
$:/language/ControlPanel/Settings/TitleLinks/No/Description
$:/language/ControlPanel/Settings/TitleLinks/Yes/Description
$:/language/ControlPanel/Settings/ToolbarButtons/Caption
$:/language/ControlPanel/Settings/ToolbarButtons/Hint
$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description
$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description
$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption
$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint
$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless
$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed
$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded
$:/language/ControlPanel/StoryTiddler/Caption
$:/language/ControlPanel/StoryTiddler/Hint
$:/language/ControlPanel/StoryView/Caption
$:/language/ControlPanel/StoryView/Prompt
$:/language/ControlPanel/Stylesheets/Caption
$:/language/ControlPanel/Stylesheets/Expand/Caption
$:/language/ControlPanel/Stylesheets/Hint
$:/language/ControlPanel/Stylesheets/Restore/Caption
$:/language/ControlPanel/Theme/Caption
$:/language/ControlPanel/Theme/Prompt
$:/language/ControlPanel/TiddlerColour/Caption
$:/language/ControlPanel/TiddlerColour/Hint
$:/language/ControlPanel/TiddlerFields/Caption
$:/language/ControlPanel/TiddlerFields/Hint
$:/language/ControlPanel/TiddlerIcon/Caption
$:/language/ControlPanel/TiddlerIcon/Hint
$:/language/ControlPanel/Toolbars/Caption
$:/language/ControlPanel/Toolbars/EditorToolbar/Caption
$:/language/ControlPanel/Toolbars/EditorToolbar/Hint
$:/language/ControlPanel/Toolbars/EditToolbar/Caption
$:/language/ControlPanel/Toolbars/EditToolbar/Hint
$:/language/ControlPanel/Toolbars/Hint
$:/language/ControlPanel/Toolbars/PageControls/Caption
$:/language/ControlPanel/Toolbars/PageControls/Hint
$:/language/ControlPanel/Toolbars/ViewToolbar/Caption
$:/language/ControlPanel/Toolbars/ViewToolbar/Hint
$:/language/ControlPanel/Tools/Download/Full/Caption
$:/language/ControlPanel/ViewTemplateBody/Caption
$:/language/ControlPanel/ViewTemplateBody/Hint
$:/language/ControlPanel/ViewTemplateTitle/Caption
$:/language/ControlPanel/ViewTemplateTitle/Hint
$:/language/Count
$:/language/Date/DaySuffix/1
$:/language/Date/DaySuffix/10
$:/language/Date/DaySuffix/11
$:/language/Date/DaySuffix/12
$:/language/Date/DaySuffix/13
$:/language/Date/DaySuffix/14
$:/language/Date/DaySuffix/15
$:/language/Date/DaySuffix/16
$:/language/Date/DaySuffix/17
$:/language/Date/DaySuffix/18
$:/language/Date/DaySuffix/19
$:/language/Date/DaySuffix/2
$:/language/Date/DaySuffix/20
$:/language/Date/DaySuffix/21
$:/language/Date/DaySuffix/22
$:/language/Date/DaySuffix/23
$:/language/Date/DaySuffix/24
$:/language/Date/DaySuffix/25
$:/language/Date/DaySuffix/26
$:/language/Date/DaySuffix/27
$:/language/Date/DaySuffix/28
$:/language/Date/DaySuffix/29
$:/language/Date/DaySuffix/3
$:/language/Date/DaySuffix/30
$:/language/Date/DaySuffix/31
$:/language/Date/DaySuffix/4
$:/language/Date/DaySuffix/5
$:/language/Date/DaySuffix/6
$:/language/Date/DaySuffix/7
$:/language/Date/DaySuffix/8
$:/language/Date/DaySuffix/9
$:/language/Date/Long/Day/0
$:/language/Date/Long/Day/1
$:/language/Date/Long/Day/2
$:/language/Date/Long/Day/3
$:/language/Date/Long/Day/4
$:/language/Date/Long/Day/5
$:/language/Date/Long/Day/6
$:/language/Date/Long/Month/1
$:/language/Date/Long/Month/10
$:/language/Date/Long/Month/11
$:/language/Date/Long/Month/12
$:/language/Date/Long/Month/2
$:/language/Date/Long/Month/3
$:/language/Date/Long/Month/4
$:/language/Date/Long/Month/5
$:/language/Date/Long/Month/6
$:/language/Date/Long/Month/7
$:/language/Date/Long/Month/8
$:/language/Date/Long/Month/9
$:/language/Date/Period/am
$:/language/Date/Period/pm
$:/language/Date/Short/Day/0
$:/language/Date/Short/Day/1
$:/language/Date/Short/Day/2
$:/language/Date/Short/Day/3
$:/language/Date/Short/Day/4
$:/language/Date/Short/Day/5
$:/language/Date/Short/Day/6
$:/language/Date/Short/Month/1
$:/language/Date/Short/Month/10
$:/language/Date/Short/Month/11
$:/language/Date/Short/Month/12
$:/language/Date/Short/Month/2
$:/language/Date/Short/Month/3
$:/language/Date/Short/Month/4
$:/language/Date/Short/Month/5
$:/language/Date/Short/Month/6
$:/language/Date/Short/Month/7
$:/language/Date/Short/Month/8
$:/language/Date/Short/Month/9
$:/language/DefaultNewTiddlerTitle
$:/language/Diffs/CountMessage
$:/language/Docs/Fields/_canonical_uri
$:/language/Docs/Fields/_is_skinny
$:/language/Docs/Fields/author
$:/language/Docs/Fields/bag
$:/language/Docs/Fields/caption
$:/language/Docs/Fields/code-body
$:/language/Docs/Fields/color
$:/language/Docs/Fields/component
$:/language/Docs/Fields/core-version
$:/language/Docs/Fields/created
$:/language/Docs/Fields/creator
$:/language/Docs/Fields/current-tiddler
$:/language/Docs/Fields/dependents
$:/language/Docs/Fields/description
$:/language/Docs/Fields/draft.of
$:/language/Docs/Fields/draft.title
$:/language/Docs/Fields/footer
$:/language/Docs/Fields/hide-body
$:/language/Docs/Fields/icon
$:/language/Docs/Fields/library
$:/language/Docs/Fields/list
$:/language/Docs/Fields/list-after
$:/language/Docs/Fields/list-before
$:/language/Docs/Fields/modified
$:/language/Docs/Fields/modifier
$:/language/Docs/Fields/module-type
$:/language/Docs/Fields/name
$:/language/Docs/Fields/parent-plugin
$:/language/Docs/Fields/plugin-priority
$:/language/Docs/Fields/plugin-type
$:/language/Docs/Fields/released
$:/language/Docs/Fields/revision
$:/language/Docs/Fields/source
$:/language/Docs/Fields/subtitle
$:/language/Docs/Fields/tags
$:/language/Docs/Fields/text
$:/language/Docs/Fields/throttle.refresh
$:/language/Docs/Fields/title
$:/language/Docs/Fields/toc-link
$:/language/Docs/Fields/type
$:/language/Docs/Fields/version
$:/language/Docs/ModuleTypes/allfilteroperator
$:/language/Docs/ModuleTypes/animation
$:/language/Docs/ModuleTypes/authenticator
$:/language/Docs/ModuleTypes/bitmapeditoroperation
$:/language/Docs/ModuleTypes/command
$:/language/Docs/ModuleTypes/config
$:/language/Docs/ModuleTypes/filteroperator
$:/language/Docs/ModuleTypes/global
$:/language/Docs/ModuleTypes/info
$:/language/Docs/ModuleTypes/isfilteroperator
$:/language/Docs/ModuleTypes/library
$:/language/Docs/ModuleTypes/macro
$:/language/Docs/ModuleTypes/parser
$:/language/Docs/ModuleTypes/route
$:/language/Docs/ModuleTypes/saver
$:/language/Docs/ModuleTypes/startup
$:/language/Docs/ModuleTypes/storyview
$:/language/Docs/ModuleTypes/texteditoroperation
$:/language/Docs/ModuleTypes/tiddlerdeserializer
$:/language/Docs/ModuleTypes/tiddlerfield
$:/language/Docs/ModuleTypes/tiddlermethod
$:/language/Docs/ModuleTypes/upgrader
$:/language/Docs/ModuleTypes/utils
$:/language/Docs/ModuleTypes/utils-browser
$:/language/Docs/ModuleTypes/utils-node
$:/language/Docs/ModuleTypes/widget
$:/language/Docs/ModuleTypes/wikimethod
$:/language/Docs/ModuleTypes/wikirule
$:/language/Docs/PaletteColours/alert-background
$:/language/Docs/PaletteColours/alert-border
$:/language/Docs/PaletteColours/alert-highlight
$:/language/Docs/PaletteColours/alert-muted-foreground
$:/language/Docs/PaletteColours/background
$:/language/Docs/PaletteColours/blockquote-bar
$:/language/Docs/PaletteColours/button-background
$:/language/Docs/PaletteColours/button-border
$:/language/Docs/PaletteColours/button-foreground
$:/language/Docs/PaletteColours/code-background
$:/language/Docs/PaletteColours/code-border
$:/language/Docs/PaletteColours/code-foreground
$:/language/Docs/PaletteColours/dirty-indicator
$:/language/Docs/PaletteColours/download-background
$:/language/Docs/PaletteColours/download-foreground
$:/language/Docs/PaletteColours/dragger-background
$:/language/Docs/PaletteColours/dragger-foreground
$:/language/Docs/PaletteColours/dropdown-background
$:/language/Docs/PaletteColours/dropdown-border
$:/language/Docs/PaletteColours/dropdown-tab-background
$:/language/Docs/PaletteColours/dropdown-tab-background-selected
$:/language/Docs/PaletteColours/dropzone-background
$:/language/Docs/PaletteColours/external-link-background
$:/language/Docs/PaletteColours/external-link-background-hover
$:/language/Docs/PaletteColours/external-link-background-visited
$:/language/Docs/PaletteColours/external-link-foreground
$:/language/Docs/PaletteColours/external-link-foreground-hover
$:/language/Docs/PaletteColours/external-link-foreground-visited
$:/language/Docs/PaletteColours/foreground
$:/language/Docs/PaletteColours/menubar-background
$:/language/Docs/PaletteColours/menubar-foreground
$:/language/Docs/PaletteColours/message-background
$:/language/Docs/PaletteColours/message-border
$:/language/Docs/PaletteColours/message-foreground
$:/language/Docs/PaletteColours/modal-backdrop
$:/language/Docs/PaletteColours/modal-background
$:/language/Docs/PaletteColours/modal-border
$:/language/Docs/PaletteColours/modal-footer-background
$:/language/Docs/PaletteColours/modal-footer-border
$:/language/Docs/PaletteColours/modal-header-border
$:/language/Docs/PaletteColours/muted-foreground
$:/language/Docs/PaletteColours/notification-background
$:/language/Docs/PaletteColours/notification-border
$:/language/Docs/PaletteColours/page-background
$:/language/Docs/PaletteColours/pre-background
$:/language/Docs/PaletteColours/pre-border
$:/language/Docs/PaletteColours/primary
$:/language/Docs/PaletteColours/select-tag-background
$:/language/Docs/PaletteColours/select-tag-foreground
$:/language/Docs/PaletteColours/sidebar-button-foreground
$:/language/Docs/PaletteColours/sidebar-controls-foreground
$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover
$:/language/Docs/PaletteColours/sidebar-foreground
$:/language/Docs/PaletteColours/sidebar-foreground-shadow
$:/language/Docs/PaletteColours/sidebar-muted-foreground
$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover
$:/language/Docs/PaletteColours/sidebar-tab-background
$:/language/Docs/PaletteColours/sidebar-tab-background-selected
$:/language/Docs/PaletteColours/sidebar-tab-border
$:/language/Docs/PaletteColours/sidebar-tab-border-selected
$:/language/Docs/PaletteColours/sidebar-tab-divider
$:/language/Docs/PaletteColours/sidebar-tab-foreground
$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected
$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground
$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover
$:/language/Docs/PaletteColours/site-title-foreground
$:/language/Docs/PaletteColours/static-alert-foreground
$:/language/Docs/PaletteColours/tab-background
$:/language/Docs/PaletteColours/tab-background-selected
$:/language/Docs/PaletteColours/tab-border
$:/language/Docs/PaletteColours/tab-border-selected
$:/language/Docs/PaletteColours/tab-divider
$:/language/Docs/PaletteColours/tab-foreground
$:/language/Docs/PaletteColours/tab-foreground-selected
$:/language/Docs/PaletteColours/table-border
$:/language/Docs/PaletteColours/table-footer-background
$:/language/Docs/PaletteColours/table-header-background
$:/language/Docs/PaletteColours/tag-background
$:/language/Docs/PaletteColours/tag-foreground
$:/language/Docs/PaletteColours/tiddler-background
$:/language/Docs/PaletteColours/tiddler-border
$:/language/Docs/PaletteColours/tiddler-controls-foreground
$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover
$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected
$:/language/Docs/PaletteColours/tiddler-editor-background
$:/language/Docs/PaletteColours/tiddler-editor-border
$:/language/Docs/PaletteColours/tiddler-editor-border-image
$:/language/Docs/PaletteColours/tiddler-editor-fields-even
$:/language/Docs/PaletteColours/tiddler-editor-fields-odd
$:/language/Docs/PaletteColours/tiddler-info-background
$:/language/Docs/PaletteColours/tiddler-info-border
$:/language/Docs/PaletteColours/tiddler-info-tab-background
$:/language/Docs/PaletteColours/tiddler-link-background
$:/language/Docs/PaletteColours/tiddler-link-foreground
$:/language/Docs/PaletteColours/tiddler-subtitle-foreground
$:/language/Docs/PaletteColours/tiddler-title-foreground
$:/language/Docs/PaletteColours/toolbar-cancel-button
$:/language/Docs/PaletteColours/toolbar-close-button
$:/language/Docs/PaletteColours/toolbar-delete-button
$:/language/Docs/PaletteColours/toolbar-done-button
$:/language/Docs/PaletteColours/toolbar-edit-button
$:/language/Docs/PaletteColours/toolbar-info-button
$:/language/Docs/PaletteColours/toolbar-new-button
$:/language/Docs/PaletteColours/toolbar-options-button
$:/language/Docs/PaletteColours/toolbar-save-button
$:/language/Docs/PaletteColours/untagged-background
$:/language/Docs/PaletteColours/very-muted-foreground
$:/language/Docs/Types/application/javascript
$:/language/Docs/Types/application/json
$:/language/Docs/Types/application/x-tiddler-dictionary
$:/language/Docs/Types/image/gif
$:/language/Docs/Types/image/jpeg
$:/language/Docs/Types/image/png
$:/language/Docs/Types/image/svg+xml
$:/language/Docs/Types/image/x-icon
$:/language/Docs/Types/text/css
$:/language/Docs/Types/text/html
$:/language/Docs/Types/text/plain
$:/language/Docs/Types/text/vnd.tiddlywiki
$:/language/Docs/Types/text/x-tiddlywiki
$:/language/DropMessage
$:/language/EditTemplate/Body/External/Hint
$:/language/EditTemplate/Body/Placeholder
$:/language/EditTemplate/Body/Preview/Type/DiffCurrent
$:/language/EditTemplate/Body/Preview/Type/DiffShadow
$:/language/EditTemplate/Body/Preview/Type/Output
$:/language/EditTemplate/Caption
$:/language/EditTemplate/Field/Dropdown/Caption
$:/language/EditTemplate/Field/Dropdown/Hint
$:/language/EditTemplate/Field/Remove/Caption
$:/language/EditTemplate/Field/Remove/Hint
$:/language/EditTemplate/Fields/Add/Button
$:/language/EditTemplate/Fields/Add/Button/Hint
$:/language/EditTemplate/Fields/Add/Dropdown/System
$:/language/EditTemplate/Fields/Add/Dropdown/User
$:/language/EditTemplate/Fields/Add/Name/Placeholder
$:/language/EditTemplate/Fields/Add/Prompt
$:/language/EditTemplate/Fields/Add/Value/Placeholder
$:/language/EditTemplate/Shadow/OverriddenWarning
$:/language/EditTemplate/Shadow/Warning
$:/language/EditTemplate/Tags/Add/Button
$:/language/EditTemplate/Tags/Add/Button/Hint
$:/language/EditTemplate/Tags/Add/Placeholder
$:/language/EditTemplate/Tags/ClearInput/Caption
$:/language/EditTemplate/Tags/ClearInput/Hint
$:/language/EditTemplate/Tags/Dropdown/Caption
$:/language/EditTemplate/Tags/Dropdown/Hint
$:/language/EditTemplate/Title/BadCharacterWarning
$:/language/EditTemplate/Title/Exists/Prompt
$:/language/EditTemplate/Title/References/Prompt
$:/language/EditTemplate/Title/Relink/Prompt
$:/language/EditTemplate/Type/Delete/Caption
$:/language/EditTemplate/Type/Delete/Hint
$:/language/EditTemplate/Type/Dropdown/Caption
$:/language/EditTemplate/Type/Dropdown/Hint
$:/language/EditTemplate/Type/Placeholder
$:/language/EditTemplate/Type/Prompt
$:/language/Encryption/Cancel
$:/language/Encryption/ConfirmClearPassword
$:/language/Encryption/Password
$:/language/Encryption/PasswordNoMatch
$:/language/Encryption/PromptSetPassword
$:/language/Encryption/RepeatPassword
$:/language/Encryption/SetPassword
$:/language/Encryption/Username
$:/language/Error/Caption
$:/language/Error/DeserializeOperator/MissingOperand
$:/language/Error/DeserializeOperator/UnknownDeserializer
$:/language/Error/Filter
$:/language/Error/FilterRunPrefix
$:/language/Error/FilterSyntax
$:/language/Error/FormatFilterOperator
$:/language/Error/IsFilterOperator
$:/language/Error/LoadingPluginLibrary
$:/language/Error/NetworkErrorAlert
$:/language/Error/PutEditConflict
$:/language/Error/PutForbidden
$:/language/Error/PutUnauthorized
$:/language/Error/RecursiveTransclusion
$:/language/Error/RetrievingSkinny
$:/language/Error/SavingToTWEdit
$:/language/Error/WhileSaving
$:/language/Error/XMLHttpRequest
$:/language/Error/ZoominTextNode
$:/language/Exporters/CsvFile
$:/language/Exporters/JsonFile
$:/language/Exporters/StaticRiver
$:/language/Exporters/TidFile
$:/language/Filters/AllTags
$:/language/Filters/AllTiddlers
$:/language/Filters/Drafts
$:/language/Filters/Missing
$:/language/Filters/Orphans
$:/language/Filters/OverriddenShadowTiddlers
$:/language/Filters/RecentSystemTiddlers
$:/language/Filters/RecentTiddlers
$:/language/Filters/SessionTiddlers
$:/language/Filters/ShadowTiddlers
$:/language/Filters/StoryList
$:/language/Filters/SystemTags
$:/language/Filters/SystemTiddlers
$:/language/Filters/TypedTiddlers
$:/language/Help/build
$:/language/Help/clearpassword
$:/language/Help/commands
$:/language/Help/default
$:/language/Help/deletetiddlers
$:/language/Help/editions
$:/language/Help/fetch
$:/language/Help/help
$:/language/Help/import
$:/language/Help/init
$:/language/Help/listen
$:/language/Help/load
$:/language/Help/makelibrary
$:/language/Help/notfound
$:/language/Help/output
$:/language/Help/password
$:/language/Help/render
$:/language/Help/rendertiddler
$:/language/Help/rendertiddlers
$:/language/Help/save
$:/language/Help/savetiddler
$:/language/Help/savetiddlers
$:/language/Help/savewikifolder
$:/language/Help/server
$:/language/Help/setfield
$:/language/Help/unpackplugin
$:/language/Help/verbose
$:/language/Help/version
$:/language/Import/Editor/Import/Heading
$:/language/Import/Imported/Hint
$:/language/Import/Listing/Cancel/Caption
$:/language/Import/Listing/Cancel/Warning
$:/language/Import/Listing/Hint
$:/language/Import/Listing/Import/Caption
$:/language/Import/Listing/Preview
$:/language/Import/Listing/Preview/Diff
$:/language/Import/Listing/Preview/DiffFields
$:/language/Import/Listing/Preview/Fields
$:/language/Import/Listing/Preview/Text
$:/language/Import/Listing/Preview/TextRaw
$:/language/Import/Listing/Rename/CancelRename
$:/language/Import/Listing/Rename/ConfirmRename
$:/language/Import/Listing/Rename/OverwriteWarning
$:/language/Import/Listing/Rename/Prompt
$:/language/Import/Listing/Rename/Tooltip
$:/language/Import/Listing/Select/Caption
$:/language/Import/Listing/Status/Caption
$:/language/Import/Listing/Title/Caption
$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible
$:/language/Import/Upgrader/Plugins/Suppressed/Version
$:/language/Import/Upgrader/Plugins/Upgraded
$:/language/Import/Upgrader/State/Suppressed
$:/language/Import/Upgrader/System/Alert
$:/language/Import/Upgrader/System/Disabled
$:/language/Import/Upgrader/System/Suppressed
$:/language/Import/Upgrader/System/Warning
$:/language/Import/Upgrader/ThemeTweaks/Created
$:/language/Import/Upgrader/Tiddler/Disabled
$:/language/Import/Upgrader/Tiddler/Selected
$:/language/Import/Upgrader/Tiddler/Unselected
$:/language/InternalJavaScriptError/Hint
$:/language/InternalJavaScriptError/Title
$:/language/LayoutSwitcher/Description
$:/language/LazyLoadingWarning
$:/language/LoginToTiddlySpace
$:/language/Manager/Controls/FilterByTag/None
$:/language/Manager/Controls/FilterByTag/Prompt
$:/language/Manager/Controls/Order/Prompt
$:/language/Manager/Controls/Search/Placeholder
$:/language/Manager/Controls/Search/Prompt
$:/language/Manager/Controls/Show/Option/Tags
$:/language/Manager/Controls/Show/Option/Tiddlers
$:/language/Manager/Controls/Show/Prompt
$:/language/Manager/Controls/Sort/Prompt
$:/language/Manager/Item/Colour
$:/language/Manager/Item/Fields
$:/language/Manager/Item/Icon
$:/language/Manager/Item/Icon/None
$:/language/Manager/Item/RawText
$:/language/Manager/Item/Tags
$:/language/Manager/Item/Tools
$:/language/Manager/Item/WikifiedText
$:/language/MissingTiddler/Hint
$:/language/Modals/Download
$:/language/No
$:/language/Notifications/CopiedToClipboard/Failed
$:/language/Notifications/CopiedToClipboard/Succeeded
$:/language/Notifications/Save/Done
$:/language/Notifications/Save/Starting
$:/language/OfficialPluginLibrary
$:/language/OfficialPluginLibrary/Hint
$:/language/PageTemplate/Description
$:/language/PageTemplate/Name
$:/language/PluginReloadWarning
$:/language/RecentChanges/DateFormat
$:/language/RelativeDate/Future/Days
$:/language/RelativeDate/Future/Hours
$:/language/RelativeDate/Future/Minutes
$:/language/RelativeDate/Future/Months
$:/language/RelativeDate/Future/Second
$:/language/RelativeDate/Future/Seconds
$:/language/RelativeDate/Future/Years
$:/language/RelativeDate/Past/Days
$:/language/RelativeDate/Past/Hours
$:/language/RelativeDate/Past/Minutes
$:/language/RelativeDate/Past/Months
$:/language/RelativeDate/Past/Second
$:/language/RelativeDate/Past/Seconds
$:/language/RelativeDate/Past/Years
$:/language/Search/DefaultResults/Caption
$:/language/Search/Filter/Caption
$:/language/Search/Filter/Hint
$:/language/Search/Filter/Matches
$:/language/Search/Matches
$:/language/Search/Matches/All
$:/language/Search/Matches/Title
$:/language/Search/Search
$:/language/Search/Search/TooShort
$:/language/Search/Shadows/Caption
$:/language/Search/Shadows/Hint
$:/language/Search/Shadows/Matches
$:/language/Search/Standard/Caption
$:/language/Search/Standard/Hint
$:/language/Search/Standard/Matches
$:/language/Search/System/Caption
$:/language/Search/System/Hint
$:/language/Search/System/Matches
$:/language/Shortcuts/Input/Accept/Hint
$:/language/Shortcuts/Input/AcceptVariant/Hint
$:/language/Shortcuts/Input/AdvancedSearch/Hint
$:/language/Shortcuts/Input/Cancel/Hint
$:/language/Shortcuts/Input/Down/Hint
$:/language/Shortcuts/Input/Tab-Left/Hint
$:/language/Shortcuts/Input/Tab-Right/Hint
$:/language/Shortcuts/Input/Up/Hint
$:/language/Shortcuts/SidebarLayout/Hint
$:/language/SideBar/All/Caption
$:/language/SideBar/Caption
$:/language/SideBar/Contents/Caption
$:/language/SideBar/Drafts/Caption
$:/language/SideBar/Explorer/Caption
$:/language/SideBar/Missing/Caption
$:/language/SideBar/More/Caption
$:/language/SideBar/Open/Caption
$:/language/SideBar/Orphans/Caption
$:/language/SideBar/Recent/Caption
$:/language/SideBar/Shadows/Caption
$:/language/SideBar/System/Caption
$:/language/SideBar/Tags/Caption
$:/language/SideBar/Tags/Untagged/Caption
$:/language/SideBar/Tools/Caption
$:/language/SideBar/Types/Caption
$:/language/Snippets/ListByTag
$:/language/Snippets/MacroDefinition
$:/language/Snippets/Table4x3
$:/language/Snippets/TableOfContents
$:/language/Switcher/Subtitle/language
$:/language/Switcher/Subtitle/layout
$:/language/Switcher/Subtitle/palette
$:/language/Switcher/Subtitle/theme
$:/language/SystemTiddler/Tooltip
$:/language/SystemTiddlers/Include/Prompt
$:/language/TagManager/Colour/Heading
$:/language/TagManager/Count/Heading
$:/language/TagManager/Icon/Heading
$:/language/TagManager/Icons/None
$:/language/TagManager/Info/Heading
$:/language/TagManager/Tag/Heading
$:/language/ThemeTweaks/Metrics
$:/language/ThemeTweaks/Metrics/BodyFontSize
$:/language/ThemeTweaks/Metrics/BodyLineHeight
$:/language/ThemeTweaks/Metrics/FontSize
$:/language/ThemeTweaks/Metrics/LineHeight
$:/language/ThemeTweaks/Metrics/SidebarBreakpoint
$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint
$:/language/ThemeTweaks/Metrics/SidebarWidth
$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint
$:/language/ThemeTweaks/Metrics/StoryLeft
$:/language/ThemeTweaks/Metrics/StoryLeft/Hint
$:/language/ThemeTweaks/Metrics/StoryRight
$:/language/ThemeTweaks/Metrics/StoryRight/Hint
$:/language/ThemeTweaks/Metrics/StoryTop
$:/language/ThemeTweaks/Metrics/StoryTop/Hint
$:/language/ThemeTweaks/Metrics/StoryWidth
$:/language/ThemeTweaks/Metrics/StoryWidth/Hint
$:/language/ThemeTweaks/Metrics/TiddlerWidth
$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint
$:/language/ThemeTweaks/Options
$:/language/ThemeTweaks/Options/CodeWrapping
$:/language/ThemeTweaks/Options/SidebarLayout
$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid
$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed
$:/language/ThemeTweaks/Options/StickyTitles
$:/language/ThemeTweaks/Options/StickyTitles/Hint
$:/language/ThemeTweaks/Settings
$:/language/ThemeTweaks/Settings/BackgroundImage
$:/language/ThemeTweaks/Settings/BackgroundImageAttachment
$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed
$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll
$:/language/ThemeTweaks/Settings/BackgroundImageSize
$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto
$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain
$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover
$:/language/ThemeTweaks/Settings/CodeFontFamily
$:/language/ThemeTweaks/Settings/EditorFontFamily
$:/language/ThemeTweaks/Settings/FontFamily
$:/language/ThemeTweaks/ThemeTweaks
$:/language/ThemeTweaks/ThemeTweaks/Hint
$:/language/Tiddler/DateFormat
$:/language/TiddlerInfo/Advanced/Caption
$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint
$:/language/TiddlerInfo/Advanced/PluginInfo/Heading
$:/language/TiddlerInfo/Advanced/PluginInfo/Hint
$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading
$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint
$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint
$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint
$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source
$:/language/TiddlerInfo/Fields/Caption
$:/language/TiddlerInfo/List/Caption
$:/language/TiddlerInfo/List/Empty
$:/language/TiddlerInfo/Listed/Caption
$:/language/TiddlerInfo/Listed/Empty
$:/language/TiddlerInfo/References/Caption
$:/language/TiddlerInfo/References/Empty
$:/language/TiddlerInfo/Tagging/Caption
$:/language/TiddlerInfo/Tagging/Empty
$:/language/TiddlerInfo/Tools/Caption
$:/language/UnsavedChangesWarning
$:/language/Yes
$:/languages/en-GB
$:/languages/en-GB/icon
$:/languages/fr-FR/icon
$:/library/sjcl.js/license
$:/Manager
$:/Manager/ItemMain/Fields
$:/Manager/ItemMain/RawText
$:/Manager/ItemMain/WikifiedText
$:/Manager/ItemSidebar/Colour
$:/Manager/ItemSidebar/Icon
$:/Manager/ItemSidebar/Tags
$:/Manager/ItemSidebar/Tools
$:/palette
$:/PaletteManager
$:/palettes/Blanca
$:/palettes/Blue
$:/palettes/ContrastDark
$:/palettes/ContrastLight
$:/palettes/CupertinoDark
$:/palettes/DarkPhotos
$:/palettes/DesertSand
$:/palettes/GruvboxDark
$:/palettes/Muted
$:/palettes/Nord
$:/palettes/Rocker
$:/palettes/SolarFlare
$:/palettes/SolarizedDark
$:/palettes/SolarizedLight
$:/palettes/SpartanDay
$:/palettes/SpartanNight
$:/palettes/Twilight
$:/palettes/Vanilla
$:/plugins/tiddlywiki/browser-sniff/bowser/bowser.js
$:/plugins/tiddlywiki/browser-sniff/readme
$:/plugins/tiddlywiki/browser-sniff/sniff.js
$:/plugins/tiddlywiki/browser-sniff/usage
$:/plugins/tiddlywiki/evernote/docs
$:/plugins/tiddlywiki/evernote/modules/enex-deserializer.js
$:/plugins/tiddlywiki/evernote/readme
$:/plugins/tiddlywiki/internals/EditTemplate/body/preview/parse-tree
$:/plugins/tiddlywiki/internals/EditTemplate/body/preview/raw
$:/plugins/tiddlywiki/internals/EditTemplate/body/preview/shared
$:/plugins/tiddlywiki/internals/EditTemplate/body/preview/widget-tree
$:/plugins/tiddlywiki/internals/readme
$:/plugins/tiddlywiki/internals/styles
$:/plugins/tiddlywiki/menubar/config
$:/plugins/tiddlywiki/menubar/items/contents
$:/plugins/tiddlywiki/menubar/items/hamburger
$:/plugins/tiddlywiki/menubar/items/pagecontrols
$:/plugins/tiddlywiki/menubar/items/search
$:/plugins/tiddlywiki/menubar/items/server
$:/plugins/tiddlywiki/menubar/items/sidebar
$:/plugins/tiddlywiki/menubar/items/topleftbar
$:/plugins/tiddlywiki/menubar/items/toprightbar
$:/plugins/tiddlywiki/menubar/menu
$:/plugins/tiddlywiki/menubar/readme
$:/plugins/tiddlywiki/menubar/styles
$:/plugins/tiddlywiki/nodewebkitsaver/readme
$:/plugins/tiddlywiki/railroad/components.js
$:/plugins/tiddlywiki/railroad/example
$:/plugins/tiddlywiki/railroad/example-source
$:/plugins/tiddlywiki/railroad/example-transclusion
$:/plugins/tiddlywiki/railroad/parser.js
$:/plugins/tiddlywiki/railroad/railroad-diagrams.css
$:/plugins/tiddlywiki/railroad/railroad-diagrams.js
$:/plugins/tiddlywiki/railroad/readme
$:/plugins/tiddlywiki/railroad/syntax
$:/plugins/tiddlywiki/railroad/syntax-string
$:/plugins/tiddlywiki/railroad/typed-parser.js
$:/plugins/tiddlywiki/railroad/usage
$:/plugins/tiddlywiki/railroad/wrapper.js
$:/SiteSubtitle
$:/SiteTitle
$:/snippets/allfields
$:/snippets/currpalettepreview
$:/snippets/DebugStylesheets
$:/snippets/download-wiki-button
$:/snippets/languageswitcher
$:/snippets/LayoutSwitcher
$:/snippets/ListTaggedCascade
$:/snippets/minifocusswitcher
$:/snippets/minilanguageswitcher
$:/snippets/minithemeswitcher
$:/snippets/modules
$:/snippets/paletteeditor
$:/snippets/palettepreview
$:/snippets/paletteswitcher
$:/snippets/peek-stylesheets
$:/snippets/retain-story-ordering-button
$:/snippets/themeswitcher
$:/snippets/viewswitcher
$:/state/popup/manager/item/$:/Manager/ItemMain/RawText
$:/state/showeditpreview
$:/TagManager
$:/tags/AdvancedSearch
$:/tags/AdvancedSearch/FilterButton
$:/tags/ControlPanel
$:/tags/ControlPanel/Info
$:/tags/ControlPanel/Plugins
$:/tags/EditorToolbar
$:/tags/EditTemplate
$:/tags/EditTemplateBodyFilter
$:/tags/EditToolbar
$:/tags/Manager/ItemMain
$:/tags/Manager/ItemSidebar
$:/tags/MenuBar
$:/tags/MoreSideBar
$:/tags/PageControls
$:/tags/PageTemplate
$:/tags/PluginLibrary
$:/tags/SideBar
$:/tags/SideBarSegment
$:/tags/StoryTiddlerTemplateFilter
$:/tags/TiddlerColourFilter
$:/tags/TiddlerIconFilter
$:/tags/TiddlerInfo
$:/tags/TiddlerInfo/Advanced
$:/tags/ViewTemplate
$:/tags/ViewTemplate/Subtitle
$:/tags/ViewTemplateBodyFilter
$:/tags/ViewTemplateTitleFilter
$:/tags/ViewToolbar
$:/temp/advancedsearch
$:/temp/search
$:/themes/tiddlywiki/snowwhite/base
$:/themes/tiddlywiki/vanilla/base
$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize
$:/themes/tiddlywiki/vanilla/metrics/bodylineheight
$:/themes/tiddlywiki/vanilla/metrics/fontsize
$:/themes/tiddlywiki/vanilla/metrics/lineheight
$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint
$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth
$:/themes/tiddlywiki/vanilla/metrics/storyleft
$:/themes/tiddlywiki/vanilla/metrics/storyright
$:/themes/tiddlywiki/vanilla/metrics/storytop
$:/themes/tiddlywiki/vanilla/metrics/storywidth
$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth
$:/themes/tiddlywiki/vanilla/options/codewrapping
$:/themes/tiddlywiki/vanilla/options/sidebarlayout
$:/themes/tiddlywiki/vanilla/options/stickytitles
$:/themes/tiddlywiki/vanilla/reset
$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment
$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize
$:/themes/tiddlywiki/vanilla/settings/codefontfamily
$:/themes/tiddlywiki/vanilla/settings/fontfamily
$:/themes/tiddlywiki/vanilla/sticky
$:/themes/tiddlywiki/vanilla/themetweaks
$:/view
GettingStarted

Plugin de partage

 21 février 2022 à 1h00

N'installez ce plugin que si vous comprenez ce qu'il fait !

Ce plugin expérimental fournit des outils pour partager des tiddlers via des URLs, comme :

  • La possibilité de charger un groupe de tiddlers grâce à une adresse hachée au démarrage
  • Un assistant et des modèles pour créer des URLs à partir d'un groupe de tiddlers

Dans la bibliothèque des plugins, vous trouverez le plugin de partage sous le nom « Share Plugin ».

Partager un TiddlyWiki avec Dropbox

 22 février 2022 à 19h52

Vous pouvez travailler sur un fichier TiddlyWiki dans Dropbox et publier un lien que chacun pourra visualiser en lecture seule.

  1. Mettez votre fichier TiddlyWiki dans un répertoire Dropbox
  2. Choisir l'option "Partager lien" de Dropbox pour avoir un lien d'accès publique au fichier
    • Dans l'interface web de Dropbox, c'est possible en cliquant sur l'icone du lien qui apparait au survol du fichier. Dropbox ajoute aussi un élément "Lien Partagé" au menu contextuel du Finder sur OS X et de l'Explorateur Windows
  3. L'URL générée par Dropbox aura cette forme :
    https://www.dropbox.com/s/<gobbledegook>/mywiki.html
  4. Modifier l'URL ainsi, en préservant soigneusement le gobbledegook :
    https://dl.dropboxusercontent.com/s/<gobbledegook>/mywiki.html

Le résultat est une URL "secrète" que vous pouvez envoyer à d'autres personnes qui auront alors la capacité de découvrir le wiki.


Entrez une URL générée par Dropbox ci-dessous et vous pourrez copier-coller l'URL secrète correspondante, ou l'ouvrir en cliquant sur « open » :

https://dl.dropboxusercontent.com/s/<gobbledegook>/mywiki.html (open)

Partager vos tiddlers avec d'autres

 21 février 2022 à h46

Il existe plusieurs façons de partager des tiddlers ou votre TiddlyWiki complet :

  • Vous pouvez joindre un TiddlyWiki à un courriel
  • Vous pouvez publier votre TiddlyWiki en ligne, et envoyer le lien dans un message :
    • un lien vers l'URL du fichier lui-même
    • un permalien () vers un tiddler spécifique
    • Un lien permaview () de tous les tiddlers ouverts
  • Vous pouvez partager un lien Dropbox vers votre TiddlyWiki
  • Vous pouvez exporter des tiddlers () dans plusieurs formats de fichiers tels que texte (.TID), HTML statique, JSON et CSV (valeurs séparées par des virgules, compatibles avec les tableurs)
  • Vous pouvez aussi partager des tiddlers simplement en rendant votre TiddlyWiki accessible aux autres, par exemple en le publiant en ligne, ce qui leur permettra d'importer des tiddlers qu'il contient
  • Il y a un plugin de partage expérimental que vous pouvez utiliser pour partager des tiddlers grâce à une URL spécialement conçue à cet effet.

Shiraz by Mohammad

 16 novembre 2020 à 21h06

Shiraz plugin is a very small in size and framework to create stylish contents in Tiddlywiki.

https://kookma.github.io/TW-Shiraz/

Shiraz plugin contains extended markups, macros, styles, and many customisation to empty Tiddlywiki and can be used as a starter kit.

Some of Shiraz features are:

  • Customized elements like, alerts, cards, panels, badges
  • Dynamic tables
  • Sortable tables
  • Display on demand, slider, and details
  • Images, basic image macros, slidein, and overlay images, polaroid and pretty images
  • Table customisation tools
  • Sticky footer
  • Multi columns tiddler
  • Multi column story river
  • List search
  • Badge status
  • Notebook style
  • Test utilities
  • Stylish buttons

Adding Shiraz plugin to any Tiddlywiki converts it to a full production tool. Shiraz uses modified CSS classes from Bootstrap.

sign Operator

 13 juin 2019 à 9h50
purposereturn -1, 0 or 1 for a list of numbers according to whether each number is negative, zero, or positive
inputa selection of titles
outputreplaces each input number with -1, 0 or 1 according to whether the number is negative, zero, or positive

Learn more about how to use Filters

Depuis : 5.1.20 See Mathematics Operators for an overview.

Examples

sign Operator (Examples)

 13 juin 2019 à 9h51

[[1.6]sign[]]

[[-1.6]sign[]]

[[0]sign[]]

Signing the Contributor License Agreement

 26 février 2022 à 17h55

Create a GitHub pull request to add your name to cla-individual.md or cla-entity.md, with the date in the format (YYYY/MM/DD).

step by step

  1. Navigate to licenses/CLA-individual or licenses/CLA-entity according to whether you are signing as an individual or representative of an organisation
  2. Ensure that the "branch" dropdown at the top left is set to tiddlywiki-com
  3. Click the "edit" button at the top-right corner (clicking this button will fork the project so you can edit the file)
  4. Add your name at the bottom
    • eg: Jeremy Ruston, @Jermolene, 2011/11/22
  5. Below the edit box for the CLA text you should see a box labelled Propose file change
  6. Enter a brief title to explain the change (eg, "Signing the CLA")
  7. Click the green button labelled Propose file change
  8. On the following screen, click the green button labelled Create pull request

Simple ways to write protect tiddlers

 6 novembre 2021 à 2h16

Sometimes you want to protect individual tiddlers from accidental changes, either from yourself or guests to your TiddlyWiki file. Here's a couple simple approaches. Note that these do not provide hardened protection against a wilful attack.

Using a stylesheet to lock tiddlers by tag name

Create a tiddler with the following contents and tag it as $:/tags/Stylesheet :

[data-tags*="Locked"] button[title="Edit this tiddler"]   {display: none;}

If your TW language isn't English, then you'll need to change the text in 'title="...."' to whatever the text is when you hover over the edit button.

Now any tiddler you tag as "Locked" will have the edit button hidden. To get it back you will need to open the stylesheet tiddler and change "none" to "inline".

Using transclusion to hide your tiddler in a system tiddler

  • Open your tiddler for editing.
  • Select the title and copy.
  • Select all the tiddler text.
  • Click on the excise tool.
  • In the title box, type $:/ and then paste the original title.
  • Use the defaults to excise the text into a new tiddler and replace it with a transclusion

Now you can view the contents of your original tiddler, but to edit them you will have to find the the tiddler with the $:/ prefix.

Une "histoire dont vous êtes le héros" par Jed Carty

 14 juin 2015 à 5h16

Un jeu simple développé avec TiddlyWiki et présenté dans cet article (eng).

http://zorklike.tiddlyspot.com

J'ai voulu évaluer la possibilité de créer un certain type de jeu en utilisant seulement le noyau de tiddlywiki sans plugins ou code javascript. J'ai réalisé un jeu de fiction interactif de type zork réduit à l'essentiel. C'est le jeu le plus simple que je puisse faire à ce jour, mais je pourrai faire quelques ajouts à l'avenir. il utiliser la préversion 5.1.5 car le widget action-setfield épargne un gros travail d'élaboration de macros.

Le but était de n'utiliser que les fonctions du noyau de tiddlywiki, aussi il n'y a ni plugins, ni javascript.

sin Operator

 21 octobre 2021 à 23h28
purposecalculate the sine value of a list of angles (given in radians)
inputa selection of titles
outputthe sine of the input angles (numeric value between -1 and 1)

Learn more about how to use Filters

Depuis : 5.1.21 See Mathematics Operators for an overview.

Examples

sin Operator (Examples)

 20 octobre 2021 à 15h21

[[2]sin[]]

=1 =2 =3 =4 +[sin[]]

SingleFileApplication

 26 janvier 2014 à 16h03

A single file application is a web application where all of the assets are delivered in a single static file. This means that it can be downloaded and used offline without losing functionality. It can also be hosted on almost any type of web server.

TiddlyWiki is an unusual single file application because it stores its data within the same file, and is capable of saving changes to itself.

Every single file application must also by definition be a SinglePageApplication, but the converse is not true.

SinglePageApplication

 23 août 2013 à 18h51

As defined by Wikipedia, a SinglePageApplication is a web application that presents itself as a single HTML document that dynamically loads additional content as the user browses the site. Frequently, single page applications are carefully designed to hide their nature, appearing and functioning as an ordinary static website by respecting the address bar and the back/forward navigation controls.

Unusually, TiddlyWiki is also a SingleFileApplication.

Slider by Mohammad

 17 novembre 2020 à 16h29

Slider is a plugin to create an ordered set of tiddlers also called Trail.

https://kookma.github.io/slider/

A trail can be used to create a sequence of selected contents like step by step tutorial, guided help, lessons and similar.

The slider plugin user interface contains three sections

  • A sidebar tab called Trails to manage trails
  • A dashboard for each trail (where trail structure is managed)
  • Tiddlers in a trail, also called slides

SlotWidget

 11 mai 2023 à 13h39

Introduction

Depuis : 5.3.0 The $slot widget is used within transcluded content to mark "slots" that the transcluding widget can fill with the $fill widget.

See the $transclude widget for details.

Attributes

The content of the $slot widget is used as a fallback for the slot content if the corresponding $fill widget is not found.

AttributeDescription
$nameThe name of the slot being defined
$depthOptional number indicating how deep the $slot widget is compared to the matching $fill widget as measured by the number of nested transclude widgets (defaults to 1). Transclude widgets whose $fillignore attribute is set to yes are ignored, and do not affect the depth count

Examples

Quoted content

When content contains quotes, passing it through attributes and parameters can be challenging. However, passing the content using the $fill widget content eliminates the need to wrap it in quotes, making the process easier.

If a variable named bold_slot contains the following $slot definition:

<b>
<$slot $name="body"/>
</b>

then the slot can be filled using this variable transclusion:

<$transclude $variable=bold_slot>
<$fill $name=body>

"""
some text
using [[Hard Linebreaks in WikiText]]
syntax
"""
</$fill>
</$transclude>

Affichera ceci :

some text
using Hard Linebreaks in WikiText
syntax

Depth

If a variable named table_slot contains the following $slot definition:

|!depth|!slot1|!slot2|
|1|<$slot $name=slot1/>|<$slot $name=slot2/>|
|2|<$slot $name=slot1 $depth=2>missing</$slot>|<$slot $name=slot2 $depth=2>missing</$slot>|

then the slot values can be filled at different transclusion depths:

<$transclude $variable=table_slot  $mode=block>
  <$fill $name=slot1>outer1</$fill>
  <$fill $name=slot2>outer2
    <$transclude $variable=table_slot $mode=block>
      <$fill $name=slot1>inner1</$fill>
      <$fill $name=slot2>inner2</$fill>
    </$transclude>
  </$fill>
</$transclude>

Affichera ceci :

depthslot1slot2
1outer1outer2
depthslot1slot2
1inner1inner2
2outer1outer2
depthslot1slot2
1inner1inner2
2inner1inner2
2missingmissing

The slot1 slot is filled at both depths with a simple string (outer1 and outer2). For slot2, the outer instance is a simple string but the inner instance recursively transcludes the same table_slot variable again. The recursion ends at the third transclusion call since both "inner" slots are filled with simple strings.

slugify Operator

 9 mai 2020 à 15h17
purposereturns each item in the list in a human-readable form for use in URLs or filenames
inputa selection of titles
outputthe input titles transformed so that they only contain lower case letters, numbers, periods, dashes and underscores

Learn more about how to use Filters

Depuis : 5.1.23 The transformation applied by the slugify operator follows these steps:

  • If there is a tiddler with the same title that has a slug field, then return that field instead of running the following steps
  • Replace uppercase letters with lowercase equivalents
  • Transliterate diacritics to their basic lowercase ASCII equivalents (for example, "Æ" is transliterated to "AE")
  • Replace spaces with dashes
  • Remove all non-word characters except dashes and periods
  • Replace multiple sequential dashes with a single dash
  • Trim dashes from start and end
  • If the result is the empty string then character codes are used instead (eg. "&£@" transforms to "38-163-64")

Note that it is possible for more than one title to slugify to the same string. The duplicateslugs can be used to alert authors to any clashes.

Examples

Certaines choses que vous pouvez faire avec TiddlyWiki

 2 juin 2016 à 7h17
  • Prendre des notes, et servez-vous des tags et des références croisées pour les lier entre elles ;
  • Utiliser les onglets, les tableaux, les listes de tiddlers partageant les mêmes tags, et les tables des matières, pour organiser vos notes ;
  • Sauvegarder des signets pour vos sites web préférés (un exemple sur http://giffmex.org/experiments/tidmarks.html) ;
  • Garder trace de vos tâches et rendez-vous, et organisez-les à l'aide de tags multiples (voir notre exemple de gestion de tâches) ;
  • Inventorier tout ce qui vous passe par la tête : vos recettes, votre bibliothèque personnelle, vos contacts, votre collection de morceaux de musique, etc. ;
  • Créer un blog ou un site web ;
  • Écrire un livre ;
  • Organiser vos images en galeries (voir notre exemple de galerie d'images) ;
  • Partager les informations contenues dans votre TiddlyWiki avec d'autres, sous forme de fichier en ligne, de pièce jointe dans un email, d'un fichier tiddler, ou d'un lien vers un tiddler en ligne précis (essayez de cliquer sur un lien de tiddler et de le transporter depuis un TiddlyWiki vers un autre, pour voir) ;
  • Faire une esquisse de dessin (éditez Motovun Jack.jpg et commencez à dessiner sur l'image, pour visualiser) ;
  • Créer un assistant modal (on parle aussi de lightbox) — voir Exemple d'assistant ;
  • Créer une présentation de type « transparents » ;
  • Créer une base de connaissance complète en local ou en ligne, à partir d'un fichier TiddlyWiki central pointant vers d'autres fichiers TiddlyWiki (un exemple est visible à l'adresse http://recursos.giffmex.org) ;
  • Créer une infographie en utilisant des tiddlers comme données (voir les infographies à l'adresse https://tiddlywiki.com/plugins/tiddlywiki/d3/).

Sort Filter Run Prefix

 22 mai 2021 à 17h26

Depuis : 5.2.0

purposesort the input titles by the result of evaluating this filter run for each item
inputall titles from previous filter runs
suffixthe :sort filter run prefix uses a rich suffix, see below for details
outputthe sorted result of previous filter runs

Each input title from previous runs is passed to this run in turn. The filter run transforms the input titles into the form needed for sorting. For example, the filter run [length[]] transforms each input title in to the number representing its length, and thus sorts the input titles according to their length.

Note that within the filter run, the "currentTiddler" variable is set to the title of the tiddler being processed. This permits filter runs like :sort:number[{!!value}divide{!!cost}] to be used for computation. The value of currentTiddler outside the run is available in the variable "..currentTiddler".

The :sort filter run prefix uses an extended syntax that allows for multiple suffixes, some of which are required:

:sort:<type>:<flaglist>[...filter run...]
  • type: Required. Determines how the items are compared and can be any of: string, alphanumeric, number, integer, version or date.
  • flaglist: comma separated list of the following flags:
    • casesensitive or caseinsensitive (required for types string and alphanumeric).
    • reverse to invert the order of the filter run (optional).

Note that filter runs used with the :sort prefix should return the same number of items that they are passed. Any missing entries will be treated as zero or the empty string. In particular, when retrieving the value of a field with the get Operator it is helpful to guard against a missing field value using the else Operator. For example [get[myfield]else[default-value]....

Examples

Sort Filter Run Prefix (Examples)

 28 avril 2021 à 9h57

Sort by title length:

[all[tiddlers]] :sort:number[length[]] +[limit[10]]

Sort by title length reversed:

[all[tiddlers]] :sort:number:reverse[length[]] +[limit[10]]

Sort by text length:

[all[tiddlers]] :sort:number[get[text]length[]] +[limit[10]]

Sort by newest of modified dates:

[tag[Field Operators]] :sort:date[get[modified]else[19700101]] +[limit[10]]

Sort by title:

[tag[Field Operators]] :sort:string:casesensitive[get[caption]] +[limit[10]]

Sort by title in reverse order:

[tag[Field Operators]] :sort:string:casesensitive,reverse[get[caption]] +[limit[10]]

Sort as text with case sensitivity:

Apple Banana Orange Grapefruit guava DragonFruit Kiwi apple orange :sort:string:casesensitive[{!!title}]

Sort as text ignoring case:

Apple Banana Orange Grapefruit guava DragonFruit Kiwi apple orange :sort:string:caseinsensitive[{!!title}]

sort Operator

 3 février 2015 à 19h12
purposesort the input by text field
inputa selection of titles
parameterF = the name of a field, defaulting to title
outputthe input, sorted into ascending order by field F, treating field values as text
! outputthe input, likewise sorted into descending order

Learn more about how to use Filters

The difference between capital and lowercase letters is ignored. Compare sortcs.

Examples

sort Operator (Examples)

 24 janvier 2015 à 11h32

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]sort[]]

[list[Days of the Week]!sort[]]

one two Three four +[sort[]]

[prefix[Tiddl]sort[text]]

[has[created]sort[created]limit[10]]
→ the oldest 10 tiddlers in the wiki

sortan Operator

 23 février 2018 à 1h25
purposesort the input by text field considering them as alphanumerics
inputa selection of titles
parameterF = the name of a field, defaulting to title
outputthe input, sorted into ascending order by field F, treating field values as alphanumerics
! outputthe input, likewise sorted into descending order

Learn more about how to use Filters

The difference between uppercase and lowercase letters is ignored.

Examples

sortan Operator (Examples)

 27 février 2022 à 21h09

These examples make use of the Apple tiddler.


Try the following example with sort instead of sortan

[list[Apple]sortan[]]

[list[Apple]!sortan[]]

App-10-A App-9-B App-10-B App-9-A +[sortan[]]

sortby Operator

 8 novembre 2015 à 5h21
purposesort the current list in the order of the list referenced in the operand
inputa list of items
parameterorder = a list specifying the order in which to sort the current list
outputall items sorted by lookup list

Learn more about how to use Filters

sortby Operator (Examples)

 8 novembre 2015 à 5h21

These examples make use of the Days of the Week tiddler.

10 6 4 9 3 2 8 +[sortby[1 2 3 4 5 6 7 8 9 10]]

Friday Tuesday Monday Thursday Sunday +[sortby{Days of the Week!!list}]

1 Mon 5 Fri 4 Tue Sun 2 +[sortby{Days of the Week!!short}]

sortcs Operator

 17 avril 2015 à 13h57
purposesort the input by text field, treating upper and lower case as different
inputa selection of titles
parameterF = the name of a field, defaulting to title
outputthe input, sorted into ascending order by field F, treating field values as text
! outputthe input, likewise sorted into descending order

Learn more about how to use Filters

Capital and lowercase letters are treated as different. Compare sort.

Examples

sortcs Operator (Examples)

 24 janvier 2015 à 11h33

These examples make use of the Days of the Week tiddler.

one two Three four +[sortcs[]]

one two Three four +[!sortcs[]]

sortsub Operator

 22 mai 2021 à 17h25
purposesort the input by the result of evaluating a subfilter for each item
inputa selection of titles
suffixT = the type used for the comparison (string, number, integer, date, version), defaulting to string
parameterS = a subfilter to be evaluated
outputthe input, sorted into ascending order by the result of evaluating subfilter S
! outputthe input, sorted into reverse order by the result of evaluating subfilter S

Learn more about how to use Filters

Each item in the list of input titles is passed to the subfilter in turn. The subfilter transforms the input titles into the form needed for sorting. For example, the subfilter [length[]] transforms each input title in the number representing its length, and thus sorts the input titles according to their length.

Note that within the subfilter, the "currentTiddler" variable is set to the title of the tiddler being processed. This permits subfilters like [{!!value}divide{!!cost}] to be used for computation.

The value of currentTiddler outside the subfilter is available in the variable "..currentTiddler". Depuis : 5.2.0

The suffix T determines how the items are compared and can be:

  • "string" (the default)
  • "number" - invalid numbers are interpreted as zero
  • "integer" - invalid integers are interpreted as zero
  • "date" - invalid dates are interpreted as 1st January 1970
  • "version" - invalid versions are interpreted as "v0.0.0"
  • "alphanumeric" - treat items as alphanumerics Depuis : 5.2.0

Note that subfilters should return the same number of items that they are passed. Any missing entries will be treated as zero or the empty string. In particular, when retrieving the value of a field with the get Operator it is helpful to guard against a missing field value using the else Operator. For example [get[myfield]else[default-value]....

Examples

sortsub Operator (Examples)

 18 novembre 2020 à 10h33

These examples make use of the following variables:

  • compare-by-title-length: [length[]]
  • compare-by-text-length: [get[text]else[]length[]]
  • compare-by-newest-of-modified-and-created-dates: [get[modified]else[19700101]]

[sortsub:number<compare-by-title-length>limit[10]]

[!sortsub:number<compare-by-title-length>limit[10]]

[sortsub:number<compare-by-text-length>limit[10]]

[!sortsub:number<compare-by-text-length>limit[10]]

[tag[Field Operators]sortsub:date<compare-by-newest-of-modified-and-created-dates>]

You can use the search-replace Operator in combination with the sortsub Operator to ignore stop words like "A" and "The" at the beginning of titles when sorting. (Note for example that "A Tale of Two Cities" sorts under "T" rather than "A")

[enlist<book-list>sortsub<compare-without-stopwords>]

You can also customise the listing so that "A Tale of Two Cities" is listed as "Tale of Two Cities, A" but still links to the correct tiddler.

<ul>
<$list filter="[enlist<book-list>sortsub<compare-without-stopwords>]">
<li><$link><$text text={{{[<currentTiddler>search-replace:i:regexp[(^The |A )(.*)],[$2, $1]]}}}/></$link></li>
</$list>
</ul>

Affichera ceci :

Orthographe

 21 juin 2015 à 22h50

Du fait des origines britanniques de TiddlyWiki, sa documentation anglaise emploie l'orthographe britannique de préférence à l'orthographe US.

Les mots comme "customise" sont orthographiés "-ise" et pas "-ize".

Les acronymes techniques standard sont écrits en majuscules, sans points : "HTML", et pas "html" ou "H.T.M.L."

Éviter les abréviations arbitraires de mots ou de phrases. Mais les abréviations suivantes sont acceptables :

AbbréviationSignificationNotes
e.g.par exempleavec un point après chaque lettre
i.e.c'est à direavec un point après chaque lettre
etcainsi de suitesans point

split Operator

 13 juin 2019 à 16h45
purposereturns each item in the list split into separate strings according to the specified separator S; duplicates are not removed
inputa selection of titles
parameterS = The substring at which to split each title
outputthe input titles split into separate items according to the specified separator S

Learn more about how to use Filters

Depuis : 5.1.20

Note that in some circumstances the split operator will include blank items in the list of results. For example,

[[the band thethe are the best the]split[the]]

The following results are returned:

["", " band ", "", " are ", " best ", ""]

Where it might be expected that the results would be:

[" band ", " are ", " best "]

The blank items mark the boundaries between matches. If they are not required they can be removed with the blank category of the is Operator: [[the band thethe are the best the]split[the]!is[blank]].

The reason that the blank items can be useful is that they allow search and replace operations to be constructed from a combination of the split Operator or splitregexp Operator and the join Operator. For example:

[[the band thethe are the best the]split[the]join[every]]

Examples

split Operator (Examples)

 13 juin 2019 à 16h44

[[a b c d e]split[ ]]

[[Mississippi]split[i]]

splitbefore Operator

 21 février 2015 à 19h37
purposeselect a delimited prefix from each input title
inputa selection of titles
parameterS = a string of characters marking the end of the prefix
outputthe prefix, up to and including S, of each input title

Learn more about how to use Filters

Each input title is processed in turn.

  • A title that contains S contributes everything up to and including S.
  • A title that doesn't contain S simply contributes itself to the output.

Contributions are dominantly appended to the output.

The table-of-contents macros use this operator with / as the parameter.

Examples

splitbefore Operator (Examples)

 26 janvier 2015 à 14h39

2015-01-26 2014-07-19 2013 +[splitbefore[-]]
[[green trees]splitbefore[ee]]

splitregexp Operator

 13 juin 2019 à 16h49
purposereturns each item in the list split into separate strings according to the specified regular expression R
inputa selection of titles
suffixflags: m for multiline mode, i for case-insensitive mode
parameterR = The regular expression at which to split each title
outputthe input titles split into separate items according to the specified regular expression R

Learn more about how to use Filters

Depuis : 5.1.20

Note that in some circumstances the splitregexp operator will include blank items in the list of results. For example,

[[the band thethe are the best the]splitregexp[the]]

The following results are returned:

["", " band ", "", " are ", " best ", ""]

Where it might be expected that the results would be:

[" band ", " are ", " best "]

The blank items mark the boundaries between matches. If they are not required they can be removed with the blank category of the is Operator: [[the band thethe are the best the]splitregexp[the]!is[blank]].

The reason that the blank items can be useful is that they allow search and replace operations to be constructed from a combination of the split Operator or splitregexp Operator and the join Operator. For example:

[[nobody, really; wants; to see -- all this \punctuation]splitregexp[,|;|-|\\]join[...]]

Syntax errors in the regular expression will cause the filter to return an error message. For example:

[[the cat sat on the mat]splitregexp[\]]

Examples

splitregexp Operator (Examples)

 13 juin 2019 à 16h50

a=b-c=d-e +[splitregexp[=|-]]

standard-deviation Operator

 26 avril 2021 à 14h15
purposetreating each input title as a number, compute their standard-deviation
inputa selection of titles
outputthe standard-deviation of the input as numbers

Learn more about how to use Filters

Depuis : 5.2.0 See Mathematics Operators for an overview.

The standard-deviation operator treats the input as a complete population and not a sample

Examples

standard-deviation Operator (Examples)

 26 avril 2021 à 14h15

=1 =3 =4 =5 +[standard-deviation[]]

Note that if there is no input the operator returns NaN

[title[NotATiddler]get[price]] +[standard-deviation[]]

Stanford JavaScript Crypto Library

 25 juin 2015 à h54

The Stanford Javascript Crypto Library is a project by the Stanford Computer Security Lab to build a secure, powerful, fast, small, easy-to-use, cross-browser library for cryptography in Javascript.

http://bitwiseshiftleft.github.io/sjcl/

StartupActions

 25 octobre 2020 à 16h17

TiddlyWiki executes any ActionWidgets found in tiddlers with the following system tags during startup:

  • Executed during initial startup:
    • (executed on all platforms)
    • (only executed when running in the browser)
    • (only executed when running under Node.js)
  • Executed after startup rendering:
    • Depuis : 5.1.23 (only executed when running in the browser)

Initial Startup Actions

The initial startup actions are useful for customising TiddlyWiki according to environmental factors such as the screen size. For example, the following action widgets when placed in a tiddler tagged $:/tags/StartupAction/Browser will cause the sidebar to be hidden by default when the screen width is less than 1000 pixels:

<$reveal type="lt" state="$:/info/browser/screen/width" text="3000">
<$action-setfield $tiddler="$:/state/sidebar" $value="no"/>
</$reveal>

<$reveal type="gteq" state="$:/info/browser/screen/width" text="3000">
<$action-setfield $tiddler="$:/state/sidebar" $value="yes"/>
</$reveal>

Depuis : 5.1.20 This example switches to the language plugin matching the language reported by the browser:

<$action-setfield $tiddler="$:/language" text={{{ [[$:/languages/en-GB]] [plugin-type[language]sort[description]removeprefix[$:/languages/]] +[prefix{$:/info/browser/language}] ~[[en-GB]] +[addprefix[$:/languages/]] }}}/>

Note that global macros are not available within initial startup action tiddlers by default. If you need to access them then you'll need to explicitly include them with an Pragma: \import at the top of the tiddler:

\import [subfilter{$:/core/config/GlobalImportFilter}]

Post-Render Startup Actions

Depuis : 5.1.23 Post-render startup actions occur after the TiddlyWiki user interface has been rendered. This makes it possible to perform actions that depend on the rendered display (such as displaying modals).

StateMechanism

 27 novembre 2021 à 3h39

The StateMechanism in TiddlyWiki is at the heart of how complex user interfaces can be built from WikiText.

In the browser, the TiddlyWiki display is produced by dynamically rendering the tiddler $:/core/ui/PageTemplate. Through various transclusions and other widgets it renders the entire user interface. The dynamic rendering is accomplished by a mechanism called "binding": any changes to the tiddlers in the store are dynamically reflected in the browser display.

The stack of templates that make up the TiddlyWiki display are complex but we'll focus on the line that displays the main story column:

<$list filter="[list[$:/StoryList]]" history="$:/HistoryList" template="$:/core/ui/ViewTemplate" editTemplate="$:/core/ui/EditTemplate" storyview={{$:/view}} />

Breaking down the attributes applied to the list widget:

  • filter: selects the list of tiddlers in the list field of the tiddler $:/StoryList. If a tiddler is added or removed from that list then it is automatically reflected in the displayed list
  • history: references the tiddler to be used to store the history stack (see the HistoryMechanism)
  • template: identifies a template tiddler to be used for rendering each tiddler in the list
  • editTemplate: identifies a different template tiddler to be used for rendering tiddlers that are in draft mode
  • storyview: specifies the story view to be used (eg classic, or zoomin)

The $:/StoryList tiddler is an example of a StateTiddler: a tiddler that is used to hold the state of the user interface. Changes to the user interface are made indirectly, by changing the underlying state tiddlers, and letting TiddlyWiki ripple the changes through the user interface.

Note how this approach makes the open tab in the sidebar very easy to implement: it is just another list widget referencing the same state tiddler, but with a different template:

<$list filter="[list[$:/StoryList]]" history="$:/HistoryList" storyview="pop">
<$button message="tm-close-tiddler" class="tc-btn-invisible tc-btn-mini">&times;</$button> <$link/>
</$list>

Now consider the implementation of the info panel within the tiddler template. We want to be able to toggle the info panel open and closed, which means that we must track its current state in a tiddler.

However, we can't track the state in a tiddler called, say, $:/InfoPanelState because every tiddler would share the same state; changing the value of the tiddler would affect all tiddlers displayed in the story.

The solution is to dynamically generate a unique title for each state tiddler that we need. We need to ensure that the same state tiddler title is generated each time a user interface element is rendered. To do that, we append together tokens representing each of the stack of transclusions that led to the current rendering location. Then that string of symbols is hashed to a simple numeric value.

The process of generating a state tiddler title is encapsulated in the qualify macro.

Story River

 17 septembre 2015 à 20h40

The "story river" (sometimes abbreviated to "story") is the sequence of tiddlers in the main column of the display.

Story Tiddler Template

 6 décembre 2021 à 13h37

"Story tiddler template" refers to the template used to display a tiddler within the story river.

The core story tiddler template can be found in $:/core/ui/StoryTiddlerTemplate

The Story Tiddler Template Cascade is used to choose the template to be used for a particular tiddler. By default, the edit template is used for tiddlers in draft mode, and the view template used otherwise.

See also:

Story Tiddler Template Cascade

 6 décembre 2021 à 15h58

The story tiddler template cascade is a cascade used to choose which Story Tiddler Template should be used for a particular tiddler.

The default story tiddler template cascade consists of:

  1. If the tiddler is a draft tiddler, use the template title given in the tiddler $:/config/ui/EditTemplate
  2. Otherwise, use the template title given in the tiddler $:/config/ui/ViewTemplate

You can see the current settings for the story tiddler template cascade in $:/ControlPanel under the Info -> Advanced -> Cascades -> Story Tiddler tab.

storyTiddler Variable

 22 juin 2015 à 9h51

=> tiddler en cours d'affichage ou d'édition.

When a tiddler is viewed or edited, then within its branch of the widget tree, the storyTiddler variable contains the title of that tiddler.

The default view template and edit template initialise storyTiddler to the value of the currentTiddler variable. This in turn will have been set by a $list widget in the relevant part of the page template.

storyTiddler is undefined outside the story river, such as in the sidebar.

Exemples

storyTiddler Variable (Examples)

 21 février 2015 à 14h14

<ol>
<$list filter="[prefix[J]]">
<li><<currentTiddler>>, <<storyTiddler>></li>
</$list>
</ol>

storyviews Operator

 3 février 2015 à 19h14
purposeselect the names of all the story views
inputignored
parameternone
outputthe name of each story view

Learn more about how to use Filters

The names are those exported by modules whose module-type is storyview.

Examples

storyviews Operator (Examples)

 26 janvier 2015 à 14h21

[storyviews[]]

stringify Operator

 19 septembre 2023 à 14h08
purposeapply JavaScript string encoding to a string
inputa selection of titles
suffixR = Depuis : 5.1.23 optionally, the keyword rawunicode
outputthe input with JavaScript string encodings applied

Learn more about how to use Filters

Depuis : 5.1.14

The following substitutions are made:

CharacterReplacementCondition
\\\Always
"\"Always
Carriage return (0x0d)\rAlways
Line feed (0x0a)\nAlways
Backspace (0x08)\bAlways
Form field (0x0c)\fAlways
Tab (0x09)\tAlways
Characters from 0x00 to 0x1f\x## where ## is two hex digitsAlways
Characters from 0x80 to 0xffff\u#### where #### is four hex digitsIf rawunicode suffix is not present (default)
Characters from 0x80 to 0xffff Depuis : 5.1.23 UnchangedIf rawunicode suffix is present

Depuis : 5.1.23 If the suffix rawunicode is present, Unicode characters above 0x80 (such as ß, ä, ñ or 🎄) will be passed through unchanged. Without the suffix, they will be substituted with \u codes, which was the default behavior before 5.1.23.

Note
Characters outside the Basic Multilingual Plane, such as 🎄 and other emojis, will be encoded as a UTF-16 surrogate pair, i.e. with two \u sequences.

jsonstringify is considered deprecated, as it duplicates the functionality of stringify.

Examples

stringify Operator (Examples)

 19 septembre 2023 à 13h40

[[Title with "double quotes" and single ' and \backslash]] +[stringify[]]

[[Accents and emojis -> äñøßπ ⌛🎄🍪🍓 without suffix]] +[stringify[]]

[[Accents and emojis -> äñøßπ ⌛🎄🍪🍓 with rawunicode suffix]] +[stringify:rawunicode[]]

Structurer TiddlyWiki

 20 février 2022 à h36

TiddlyWiki5 fournit plusieurs fonctionnalités qui vous aideront à structurer les informations sous forme de tiddlers, et à modéliser les relations entre eux :

Styles et Classes en WikiTexte

 4 mars 2022 à 13h36

Vous pouvez utiliser cette structure pour affecter un style ou des classes CSS au contenu encadré :

@@.monStyle
* Liste Une
* Liste Deux
@@

Affichera ceci :

  • Liste Une
  • Liste Deux

Code HTML correspondant :

<ul class="monStyle"><li>Liste Une</li><li>Liste Deux</li></ul>

Une syntaxe similaire permet d'affecter des styles. Par exemple :

@@background-color:red;
* Liste Une
* Liste Deux
@@

Affichera ceci :

  • Liste Une
  • Liste Deux

Code HTML correspondant :

<ul style="background-color:red;"><li>Liste Une</li><li>Liste Deux</li></ul>

Plusieurs styles et classes peuvent être affectés en même temps :

@@.tc-tiddler-frame
@@width:400px;
Du texte
@@

Affichera ceci :

Du texte

Code HTML correspondant :

<p class="tc-tiddler-frame" style="width:400px;">Du texte
</p>

Stylesheet Macros

 21 février 2015 à 22h39

The following core macros make it easy to specify alternative browser-specific properties when constructing a stylesheet tiddler:

<<box-shadow shadow>>
for the x-box-shadow properties
<<filter filter>>
for the x-filter properties
<<transition transition>>
for the x-transition properties
<<transform-origin origin>>
for the x-transition-origin properties
<<background-linear-gradient gradient>>
for the x-linear-gradient values of the background-image property

The following macros are documented separately:

All these macros are defined in the $:/core/macros/CSS tiddler.

subfilter Operator

 17 décembre 2021 à 13h57
purposeselect titles from the operand interpreted as a filter expression
inputa selection of titles passed as input to the subfilter
! inputa selection of titles passed as input to the subfilter
parameterS = a filter expression
outputthe selection of titles returned from the subfilter S
! outputthose input titles that are not returned from the subfilter S

Learn more about how to use Filters

Depuis : 5.1.18 Note that the subfilter operator was introduced in version 5.1.18 and is not available in earlier versions.

Literal filter operands cannot contain square brackets but you can work around the issue by using a variable:

<$set name="myFilter" value="[tag[one]]">
<$list filter="[all[tiddlers]subfilter<myFilter>]">
...

Compare with the similar filter operator which runs a subfilter against each title, returning those titles that return a non-empty list (and discards the results of the subfilter)

The subfilter operator will act as a constructor whenever the filter defined by its operand is a constructor. Otherwise, it will act as a modifier.

Examples

subfilter Operator (Examples)

 30 octobre 2021 à 23h34

Literal filter operands can be used, but such cases are better rewritten without using subfilter:

[subfilter[one two three]addsuffix[!]]
→ same as one two three +[addsuffix[!]]

The subfilter operator can be used to dynamically define parts of a filter run. This is useful for sharing a common pieces of a filter across multiple filters.

For example, this variable:

  • recent-mods: [has[modified]!sort[modified]limit[5]]

can be used in one filter like this:

[tag[Filter Operators]subfilter<recent-mods>addsuffix[!]]
→ same as [tag[Filter Operators]has[modified]!sort[modified]limit[5]addsuffix[!]]

and in another similar filter like this:

[tag[ActionWidgets]subfilter<recent-mods>addprefix[!]]

Variables are not the only way to define dynamic subfilters. Text references can be used to load a subfilter from a tiddler field (see also Filter Parameter):

[subfilter{$:/StoryList!!list}limit[5]]
[subfilter{$:/StoryList!!list}subfilter<recent-mods>]

substitute Operator

 15 juin 2023 à 18h30
purposereturns each item in the list, replacing within each title placeholders for filters, parameters and variables with their corresponding values
inputa selection of titles
parameterthe substitute operator optionally accepts a variable number of parameters, see below for details
outputthe input titles with placeholders for filter expressions, parameter and variables replaced with their corresponding values

Learn more about how to use Filters

Depuis : 5.3.0

The substitute operator replaces any placeholders in the input titles in the following order:

  1. filter expressions
  2. parameters to the substitute operator
  3. variables
placeholder syntaxdescription
$n$Text substitution of a parameter provided to the operator, where n is the position of the parameter starting with 1 for the first parameter. Unmatched placeholders pass through unchanged.
$(varname)$Text substitution of a variable. Undefined variables are replaced with an empty string.
${ filter expression }$Text substitution of the first result of evaluating a filter expression. In other words, if the filter returns multiple titles only the first one will be used.

Placeholders that contain square bracket characters are not valid filter syntax when used directly in a filter expression. However they can be provided as input to the substitute operator as text references or variables

Examples

substitute Operator (Examples)

 15 juin 2023 à h34

Substitute substitute[] operator parameters

[[Hi, I'm $1$ and I live in $2$]substitute[Bugs Bunny],[Rabbit Hole Hill]]

Substitute variables

This example uses the following variables:

  • name:
    Bugs Bunny
  • address:
    Rabbit Hole Hill

[[Hi, I'm Bugs Bunny and I live in Rabbit Hole Hill]substitute[]]

Substitute variables and operator parameters

This example uses the following variable:

  • time:
    morning

[[Something in the morning at $2$ about $1$ ]substitute[Maths],[the Library]]

Substitute a filter expression and a variable

This example uses the following variables:

  • field:
    modified
  • sentence:
    This tiddler was last $(field)$ on ${[{!!modified}format:date[DDth MMM YYYY]]}$

[<sentence>substitute[]]

Substituted Attribute Values

 15 juin 2023 à 18h30

Depuis : 5.3.0

Substituted attribute values can use two different styles of quoting:

  • Single backticks
    attr=`value`
  • Triple backticks
    attr=```value```

The value of the attribute will be the text denoted by the backticks with any of the placeholders for filter expressions and variables substituted with their corresponding values. Filter expression placeholders are substituted before variable placeholders, allowing for further variable substitution in their returned value.

Any other wiki syntax in that text will be left as-is.

placeholder syntaxdescription
$(varname)$Text substitution of a variable. Undefined variables are replaced with an empty string.
${ filter expression }$Text substitution with the first result of evaluating the filter expression.

Examples

Substituting a variable value into a string

<$text text=`Hello there this is the tiddler "Substituted Attribute Values"`/>

Affichera ceci :

Hello there this is the tiddler "Substituted Attribute Values"

Substituting a variable value and the result of evaluating a filter expression into a string

<$text text=`This tiddler is titled "Substituted Attribute Values" and was last modified on ${[{!!modified}format:date[DDth MMM YYYY]]}$`/>

Affichera ceci :

This tiddler is titled "Substituted Attribute Values" and was last modified on 15 juin 2023

Concatenating strings and variables to create a URL


<$let hash={{{ [<currentTiddler>encodeuricomponent[]] }}}>
<a href=`http://tiddlywiki.com/#`>this tiddler on tiddlywiki.com</a>
</$let>

Affichera ceci :

this tiddler on tiddlywiki.com

Concatenating variables and a text reference to create a URL


<$let hash={{{ [<currentTiddler>encodeuricomponent[]] }}}>
<a href=`${ [{!!base-url}] }$#`>this tiddler on tiddlywiki.com</a>
</$let>

Affichera ceci :

this tiddler on tiddlywiki.com

subtiddlerfields Operator

 3 avril 2018 à 17h46
purposeselect all fields present in the selected tiddlers within a plugin
inputa selection of tiddler titles
parameterP = the title of a plugin
outputall field names present in the selected tiddlers within the plugin named P

Learn more about how to use Filters

subtiddlerfields Operator (Examples)

 3 avril 2018 à 17h42

[[$:/core/copyright.txt]subtiddlerfields[$:/core]]

subtract Operator

 11 juin 2019 à 13h56
purposetreating each input title as a number, subtract from each the numeric value of the operand
inputa selection of titles
parameterN = a number
outputthe input as numbers, but with N subtracted from each one

Learn more about how to use Filters

Depuis : 5.1.20 See Mathematics Operators for an overview.

Examples

subtract Operator (Examples)

 11 juin 2019 à 13h56

[[23]subtract[19]]

=1 =2 =3 =4 +[subtract[4]]

suffix Operator

 18 février 2022 à 2h34
purposefilter the input titles by how they end
inputa selection of titles
suffixthe suffix operator uses a rich suffix, see below for details
parameterS = a string of characters
outputthose input titles that end with S
! outputthose input tiddlers that do not end with S

Learn more about how to use Filters

Depuis : 5.2.2

The suffix operator uses an extended syntax that permits multiple flags to be passed:

[suffix:<flag list>[<operand>]]
  • flag list: a comma delimited list of flags
  • operand: filter operand

The available flags are:

  • casesensitive: (default), this flag forces a case-sensitive match, where upper and lower case letters are considered different
  • caseinsensitive: overrides the default so that upper and lower case letters are considered identical for matching purposes

Examples

suffix Operator (Examples)

 18 février 2022 à 2h34

[suffix[.jpg]]

[suffix:caseinsensitive[.JPG]]

[tag[task]!suffix[ing]]

sum Operator

 11 juin 2019 à 16h59
purposeproduce the sum of the input numbers
inputa selection of titles
outputthe result of adding together the input as numbers

Learn more about how to use Filters

Depuis : 5.1.20 See Mathematics Operators for an overview.

Examples

sum Operator (Examples)

 11 juin 2019 à 17h01

=1 =2 =3 =4 =5 +[sum[]]

[tag[HelloThere]get[text]length[]sum[]]

Sunday

 16 novembre 2021 à 22h07

This example tiddler is used to illustrate some of the Filter Operators.

SystemTag: $:/tags/AboveStory

 26 septembre 2018 à 18h14

The system tag $:/tags/AboveStory marks elements to be placed at the top of the story river

The following tiddlers are tagged with $:/tags/AboveStory

caption
$:/core/ui/AboveStory/tw2-plugin-check $:/core/ui/AboveStory/tw2-plugin-check

SystemTag: $:/tags/AdvancedSearch

 26 septembre 2018 à 18h14

The system tag $:/tags/AdvancedSearch marks search elements

The following tiddlers are tagged with $:/tags/AdvancedSearch

caption
$:/core/ui/AdvancedSearch/Filter Filtrer
$:/core/ui/AdvancedSearch/Shadows Shadows
$:/core/ui/AdvancedSearch/Standard Standard
$:/core/ui/AdvancedSearch/System Système

SystemTag: $:/tags/AdvancedSearch/FilterButton

 26 septembre 2018 à 18h14

The system tag $:/tags/AdvancedSearch/FilterButton marks filter buttons

The following tiddlers are tagged with $:/tags/AdvancedSearch/FilterButton

caption
$:/core/ui/AdvancedSearch/Filter/FilterButtons/clear $:/core/ui/AdvancedSearch/Filter/FilterButtons/clear
$:/core/ui/AdvancedSearch/Filter/FilterButtons/delete $:/core/ui/AdvancedSearch/Filter/FilterButtons/delete
$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown $:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown
$:/core/ui/AdvancedSearch/Filter/FilterButtons/export $:/core/ui/AdvancedSearch/Filter/FilterButtons/export

SystemTag: $:/tags/Alert

 26 septembre 2018 à 18h14

The system tag $:/tags/Alert marks alerts

(No tiddlers are currently tagged with $:/tags/Alert )

SystemTag: $:/tags/BelowStory

 26 septembre 2018 à 18h14

The system tag $:/tags/BelowStory marks elements to be placed at the bottom of the story river

(No tiddlers are currently tagged with $:/tags/BelowStory )

SystemTag: $:/tags/ClassFilters/PageTemplate

 20 octobre 2022 à 4h59

The system tag $:/tags/ClassFilters/PageTemplate marks filters marks filters evaluated to dynamically add their output as CSS classes to the page template.

(No tiddlers are currently tagged with $:/tags/ClassFilters/PageTemplate )

SystemTag: $:/tags/ClassFilters/TiddlerTemplate

 26 mars 2023 à 16h30

The system tag $:/tags/ClassFilters/TiddlerTemplate marks filters evaluated to dynamically add their output as CSS classes to the tiddler template.

The variables available are within each filter:

  • storyTiddler: the tiddler in the story for which the filter should be evaluated.
  • currentTiddler: the tiddler holding the filter definition being evaluated.
(No tiddlers are currently tagged with $:/tags/ClassFilters/TiddlerTemplate )

SystemTag: $:/tags/ControlPanel

 26 septembre 2018 à 18h14

The system tag $:/tags/ControlPanel marks control panel tabs

The following tiddlers are tagged with $:/tags/ControlPanel

caption
$:/core/ui/ControlPanel/Appearance Apparence
$:/core/ui/ControlPanel/Info Info
$:/core/ui/ControlPanel/KeyboardShortcuts Raccourcis clavier
$:/core/ui/ControlPanel/Plugins Plugins
$:/core/ui/ControlPanel/Saving Sauvegarde
$:/core/ui/ControlPanel/Settings Paramétrage

SystemTag: $:/tags/ControlPanel/Advanced

 26 septembre 2018 à 18h14

The system tag $:/tags/ControlPanel/Advanced marks control panel advanced tabs

The following tiddlers are tagged with $:/tags/ControlPanel/Advanced

caption
$:/core/ui/ControlPanel/Cascades Cascades
$:/core/ui/ControlPanel/EditorTypes Types d'éditeur
$:/core/ui/ControlPanel/LoadedModules Modules chargés
$:/core/ui/ControlPanel/Parsing Analyse
$:/core/ui/ControlPanel/Stylesheets Feuilles de style
$:/core/ui/ControlPanel/TiddlerFields Champs des tiddlers

SystemTag: $:/tags/ControlPanel/Appearance

 26 septembre 2018 à 18h14

The system tag $:/tags/ControlPanel/Appearance marks control panel appearance tabs

The following tiddlers are tagged with $:/tags/ControlPanel/Appearance

caption
$:/core/ui/ControlPanel/Palette Palette
$:/core/ui/ControlPanel/StoryView Vue sur le déroulé
$:/core/ui/ControlPanel/Theme Thème
$:/core/ui/ControlPanel/Toolbars Barres d'outils
$:/snippets/LayoutSwitcher Mise en page
$:/themes/tiddlywiki/vanilla/themetweaks Réglages du thème

SystemTag: $:/tags/ControlPanel/Info

 26 septembre 2018 à 18h14

The system tag $:/tags/ControlPanel/Info marks control panel info tabs

The following tiddlers are tagged with $:/tags/ControlPanel/Info

caption
$:/core/ui/ControlPanel/Advanced Avancé
$:/core/ui/ControlPanel/Basics Fondamentaux

SystemTag: $:/tags/ControlPanel/Plugins

 7 août 2021 à 13h36

The system tag $:/tags/ControlPanel/Plugins marks elements to be placed under "Plugins" tab in $:/ControlPanel

The following tiddlers are tagged with $:/tags/ControlPanel/Plugins

caption
$:/core/ui/ControlPanel/Plugins/Installed/Languages Langues (1)
$:/core/ui/ControlPanel/Plugins/Installed/Plugins Plugins (7)
$:/core/ui/ControlPanel/Plugins/Installed/Themes Thèmes (9)

SystemTag: $:/tags/ControlPanel/Saving

 26 septembre 2018 à 18h14

The system tag $:/tags/ControlPanel/Saving marks saving configurations

The following tiddlers are tagged with $:/tags/ControlPanel/Saving

caption
$:/core/ui/ControlPanel/Saving/DownloadSaver Enregistreur de téléchargement
$:/core/ui/ControlPanel/Saving/General Général
$:/core/ui/ControlPanel/Saving/Gitea Enregistreur Gitea
$:/core/ui/ControlPanel/Saving/GitHub Enregistreur GitHub
$:/core/ui/ControlPanel/Saving/GitLab Enregistreur GitLab
$:/core/ui/ControlPanel/Saving/TiddlySpot Enregistreur TiddlySpot

SystemTag: $:/tags/ControlPanel/Settings

 26 septembre 2018 à 18h14

The system tag $:/tags/ControlPanel/Settings marks control panel settings tabs

The following tiddlers are tagged with $:/tags/ControlPanel/Settings

caption
$:/core/ui/ControlPanel/Settings/CamelCase Liens Wiki Camel Case
$:/core/ui/ControlPanel/Settings/DefaultMoreSidebarTab Onglet par défaut sous le Plus de la barre latérale
$:/core/ui/ControlPanel/Settings/DefaultSidebarTab Onglet par défaut sur la barre latérale
$:/core/ui/ControlPanel/Settings/EditorToolbar Barre d'outils de l'éditeur
$:/core/ui/ControlPanel/Settings/InfoPanelMode Mode Panneau d'Informations du Tiddler
$:/core/ui/ControlPanel/Settings/LinkToBehaviour Comportement à l'ouverture du tiddler
$:/core/ui/ControlPanel/Settings/MissingLinks Liens wiki
$:/core/ui/ControlPanel/Settings/NavigationAddressBar Barre d'adresse pendant la navigation
$:/core/ui/ControlPanel/Settings/NavigationHistory Historique de navigation
$:/core/ui/ControlPanel/Settings/NavigationPermalinkviewMode Mode Permalink/permaview
$:/core/ui/ControlPanel/Settings/PerformanceInstrumentation Instrumentation de la performance
$:/core/ui/ControlPanel/Settings/TitleLinks Titres des tiddlers
$:/core/ui/ControlPanel/Settings/ToolbarButtons Boutons de la barre d'outils
$:/core/ui/ControlPanel/Settings/ToolbarButtonStyle Style des boutons de la barre d'outils

SystemTag: $:/tags/ControlPanel/Toolbars

 26 septembre 2018 à 18h14

The system tag $:/tags/ControlPanel/Toolbars marks control panel toolbar customisation tabs

The following tiddlers are tagged with $:/tags/ControlPanel/Toolbars

caption
$:/core/ui/ControlPanel/Toolbars/EditorToolbar Barre d'outils de l'Éditeur
$:/core/ui/ControlPanel/Toolbars/EditToolbar Barre d'outils du mode édition
$:/core/ui/ControlPanel/Toolbars/PageControls Barre d'outils de la page
$:/core/ui/ControlPanel/Toolbars/ViewToolbar Barre d'outils du mode visualisation
$:/plugins/tiddlywiki/menubar/config Menu Bar

SystemTag: $:/tags/EditorToolbar

 26 septembre 2018 à 18h14

The system tag $:/tags/EditorToolbar marks the editor toolbar buttons

The following tiddlers are tagged with $:/tags/EditorToolbar

caption
$:/core/ui/EditorToolbar/bold gras
$:/core/ui/EditorToolbar/clear effacer
$:/core/ui/EditorToolbar/editor-height hauteur de l'éditeur
$:/core/ui/EditorToolbar/excise exciser
$:/core/ui/EditorToolbar/heading-1 en-tête 1
$:/core/ui/EditorToolbar/heading-2 en-tête 2
$:/core/ui/EditorToolbar/heading-3 en-tête 3
$:/core/ui/EditorToolbar/heading-4 en-tête 4
$:/core/ui/EditorToolbar/heading-5 en-tête 5
$:/core/ui/EditorToolbar/heading-6 en-tête 6
$:/core/ui/EditorToolbar/italic italiques
$:/core/ui/EditorToolbar/line-width épaisseur du trait
$:/core/ui/EditorToolbar/link lien
$:/core/ui/EditorToolbar/linkify wikilien
$:/core/ui/EditorToolbar/list-bullet liste à puces
$:/core/ui/EditorToolbar/list-number liste numérotée
$:/core/ui/EditorToolbar/mono-block bloc de chasse constante
$:/core/ui/EditorToolbar/mono-line chasse constante
$:/core/ui/EditorToolbar/more plus
$:/core/ui/EditorToolbar/opacity opacité
$:/core/ui/EditorToolbar/paint couleur de remplissage
$:/core/ui/EditorToolbar/picture image
$:/core/ui/EditorToolbar/preview prévisualisation
$:/core/ui/EditorToolbar/preview-type type de prévisualisation
$:/core/ui/EditorToolbar/quote citation
$:/core/ui/EditorToolbar/rotate-left pivoter vers la gauche
$:/core/ui/EditorToolbar/size taille de l'image
$:/core/ui/EditorToolbar/stamp tampon
$:/core/ui/EditorToolbar/strikethrough barré
$:/core/ui/EditorToolbar/subscript indice
$:/core/ui/EditorToolbar/superscript exposant
$:/core/ui/EditorToolbar/transcludify transclusion
$:/core/ui/EditorToolbar/underline souligné

SystemTag: $:/tags/EditorTools

 19 mai 2021 à 17h05

The system tag $:/tags/EditorTools can be used to include non-button UI elements in the edit mode tiddler toolbar. For buttons see SystemTag: $:/tags/EditToolbar.

The following tiddlers are tagged with $:/tags/EditorTools

caption
$:/core/ui/EditorToolbar/file-import $:/core/ui/EditorToolbar/file-import

SystemTag: $:/tags/EditPreview

 26 septembre 2018 à 18h14

The system tag $:/tags/EditPreview marks custom preview panes

The following tiddlers are tagged with $:/tags/EditPreview

caption
$:/core/ui/EditTemplate/body/preview/diffs-current différences avec le tiddler courant
$:/core/ui/EditTemplate/body/preview/diffs-shadow différences avec le tiddler shadow (s'il existe)
$:/core/ui/EditTemplate/body/preview/output sortie
$:/plugins/tiddlywiki/internals/EditTemplate/body/preview/parse-tree parse tree
$:/plugins/tiddlywiki/internals/EditTemplate/body/preview/raw raw HTML
$:/plugins/tiddlywiki/internals/EditTemplate/body/preview/widget-tree widget tree

SystemTag: $:/tags/EditTemplate

 26 septembre 2018 à 18h14

The system tag $:/tags/EditTemplate marks the edit template

The following tiddlers are tagged with $:/tags/EditTemplate

caption
$:/ContributionBanner $:/ContributionBanner
$:/core/ui/EditTemplate/body $:/core/ui/EditTemplate/body
$:/core/ui/EditTemplate/controls $:/core/ui/EditTemplate/controls
$:/core/ui/EditTemplate/fields $:/core/ui/EditTemplate/fields
$:/core/ui/EditTemplate/shadow $:/core/ui/EditTemplate/shadow
$:/core/ui/EditTemplate/tags $:/core/ui/EditTemplate/tags
$:/core/ui/EditTemplate/title $:/core/ui/EditTemplate/title
$:/core/ui/EditTemplate/type $:/core/ui/EditTemplate/type
$:/core/ui/ViewTemplate/classic $:/core/ui/ViewTemplate/classic

SystemTag: $:/tags/EditToolbar

 26 septembre 2018 à 18h14

The system tag $:/tags/EditToolbar marks the edit mode tiddler toolbar

The following tiddlers are tagged with $:/tags/EditToolbar

caption
$:/core/ui/Buttons/cancel annuler
$:/core/ui/Buttons/delete supprimer
$:/core/ui/Buttons/save ok

SystemTag: $:/tags/Exporter

 26 septembre 2018 à 18h14

The system tag $:/tags/Exporter marks the exporters

The following tiddlers are tagged with $:/tags/Exporter

caption
$:/core/templates/exporters/CsvFile Fichier CSV
$:/core/templates/exporters/JsonFile Fichier JSON
$:/core/templates/exporters/StaticRiver HTML Statique
$:/core/templates/exporters/TidFile Fichier ".tid"

SystemTag: $:/tags/Filter

 26 septembre 2018 à 18h14

The system tag $:/tags/Filter marks filters in advanced search sample filter dropdown

The following tiddlers are tagged with $:/tags/Filter

caption
$:/core/Filters/AllTags Tous les tags sauf les tags système
$:/core/Filters/AllTiddlers Tous les tiddlers sauf les tiddlers système
$:/core/Filters/Drafts Les tiddlers en cours d'édition
$:/core/Filters/Missing Les tiddlers manquants
$:/core/Filters/Orphans Les tiddlers orphelins
$:/core/Filters/OverriddenShadowTiddlers Les tiddlers shadow modifiés
$:/core/Filters/RecentSystemTiddlers Les tiddlers modifiés récemment, y compris les tiddlers système
$:/core/Filters/RecentTiddlers Les tiddlers modifiés récemment
$:/core/Filters/SessionTiddlers Les tiddlers modifiés depuis que le dernier chargement du wiki
$:/core/Filters/ShadowTiddlers Les tiddlers shadow
$:/core/Filters/StoryList Les tiddlers du déroulé, hormis $:/AdvancedSearch
$:/core/Filters/SystemTags Les tags système
$:/core/Filters/SystemTiddlers Les tiddlers système
$:/core/Filters/TypedTiddlers Tiddlers dont le contenu n'est pas en wiki-text

SystemTag: $:/tags/Global

 19 avril 2023 à 11h31

The system tag $:/tags/Global marks global definitions that are made available everywhere.

The following tiddlers are tagged with $:/tags/Global

caption
WidgetMessage: tm-http-request Example - Random Dog WidgetMessage: tm-http-request Example - Random Dog
WidgetMessage: tm-http-request Example - Zotero WidgetMessage: tm-http-request Example - Zotero

SystemTag: $:/tags/Global/View

 19 avril 2023 à 11h31

The system tag $:/tags/Global/View marks definitions that are only made available within the main view templates and the preview panel.

(No tiddlers are currently tagged with $:/tags/Global/View )

SystemTag: $:/tags/Global/View/Body

 19 avril 2023 à 11h31

The system tag $:/tags/Global/View/Body marks definitions that are only made available within the main view template bodies and the preview panel.

(No tiddlers are currently tagged with $:/tags/Global/View/Body )

SystemTag: $:/tags/Image

 18 octobre 2021 à 11h23

The system tag $:/tags/Image marks core images. An overview of system icons can be found in the Icon Gallery

The following tiddlers are tagged with $:/tags/Image

caption
$:/core/icon $:/core/icon
$:/core/images/add-comment $:/core/images/add-comment
$:/core/images/advanced-search-button $:/core/images/advanced-search-button
$:/core/images/auto-height $:/core/images/auto-height
$:/core/images/blank $:/core/images/blank
$:/core/images/bold $:/core/images/bold
$:/core/images/cancel-button $:/core/images/cancel-button
$:/core/images/chevron-down $:/core/images/chevron-down
$:/core/images/chevron-left $:/core/images/chevron-left
$:/core/images/chevron-right $:/core/images/chevron-right
$:/core/images/chevron-up $:/core/images/chevron-up
$:/core/images/clone-button $:/core/images/clone-button
$:/core/images/close-all-button $:/core/images/close-all-button
$:/core/images/close-button $:/core/images/close-button
$:/core/images/close-others-button $:/core/images/close-others-button
$:/core/images/copy-clipboard $:/core/images/copy-clipboard
$:/core/images/delete-button $:/core/images/delete-button
$:/core/images/done-button $:/core/images/done-button
$:/core/images/down-arrow $:/core/images/down-arrow
$:/core/images/download-button $:/core/images/download-button
$:/core/images/edit-button $:/core/images/edit-button
$:/core/images/erase $:/core/images/erase
$:/core/images/excise $:/core/images/excise
$:/core/images/export-button $:/core/images/export-button
$:/core/images/file $:/core/images/file
$:/core/images/fixed-height $:/core/images/fixed-height
$:/core/images/fold-all-button $:/core/images/fold-all-button
$:/core/images/fold-button $:/core/images/fold-button
$:/core/images/fold-others-button $:/core/images/fold-others-button
$:/core/images/folder $:/core/images/folder
$:/core/images/full-screen-button $:/core/images/full-screen-button
$:/core/images/github $:/core/images/github
$:/core/images/gitter $:/core/images/gitter
$:/core/images/globe $:/core/images/globe
$:/core/images/heading-1 $:/core/images/heading-1
$:/core/images/heading-2 $:/core/images/heading-2
$:/core/images/heading-3 $:/core/images/heading-3
$:/core/images/heading-4 $:/core/images/heading-4
$:/core/images/heading-5 $:/core/images/heading-5
$:/core/images/heading-6 $:/core/images/heading-6
$:/core/images/help $:/core/images/help
$:/core/images/home-button $:/core/images/home-button
$:/core/images/import-button $:/core/images/import-button
$:/core/images/info-button $:/core/images/info-button
$:/core/images/italic $:/core/images/italic
$:/core/images/layout-button $:/core/images/layout-button
$:/core/images/left-arrow $:/core/images/left-arrow
$:/core/images/line-width $:/core/images/line-width
$:/core/images/link $:/core/images/link
$:/core/images/linkify $:/core/images/linkify
$:/core/images/list $:/core/images/list
$:/core/images/list-bullet $:/core/images/list-bullet
$:/core/images/list-number $:/core/images/list-number
$:/core/images/locked-padlock $:/core/images/locked-padlock
$:/core/images/mail $:/core/images/mail
$:/core/images/mastodon $:/core/images/mastodon
$:/core/images/menu-button $:/core/images/menu-button
$:/core/images/minus-button $:/core/images/minus-button
$:/core/images/mono-block $:/core/images/mono-block
$:/core/images/mono-line $:/core/images/mono-line
$:/core/images/network-activity $:/core/images/network-activity
$:/core/images/new-button $:/core/images/new-button
$:/core/images/new-here-button $:/core/images/new-here-button
$:/core/images/new-image-button $:/core/images/new-image-button
$:/core/images/new-journal-button $:/core/images/new-journal-button
$:/core/images/opacity $:/core/images/opacity
$:/core/images/open-window $:/core/images/open-window
$:/core/images/options-button $:/core/images/options-button
$:/core/images/paint $:/core/images/paint
$:/core/images/palette $:/core/images/palette
$:/core/images/permalink-button $:/core/images/permalink-button
$:/core/images/permaview-button $:/core/images/permaview-button
$:/core/images/picture $:/core/images/picture
$:/core/images/plugin-generic-language $:/core/images/plugin-generic-language
$:/core/images/plugin-generic-plugin $:/core/images/plugin-generic-plugin
$:/core/images/plugin-generic-theme $:/core/images/plugin-generic-theme
$:/core/images/plus-button $:/core/images/plus-button
$:/core/images/preview-closed $:/core/images/preview-closed
$:/core/images/preview-open $:/core/images/preview-open
$:/core/images/print-button $:/core/images/print-button
$:/core/images/quote $:/core/images/quote
$:/core/images/refresh-button $:/core/images/refresh-button
$:/core/images/right-arrow $:/core/images/right-arrow
$:/core/images/rotate-left $:/core/images/rotate-left
$:/core/images/save-button $:/core/images/save-button
$:/core/images/save-button-dynamic $:/core/images/save-button-dynamic
$:/core/images/size $:/core/images/size
$:/core/images/spiral $:/core/images/spiral
$:/core/images/stamp $:/core/images/stamp
$:/core/images/star-filled $:/core/images/star-filled
$:/core/images/storyview-classic $:/core/images/storyview-classic
$:/core/images/storyview-pop $:/core/images/storyview-pop
$:/core/images/storyview-zoomin $:/core/images/storyview-zoomin
$:/core/images/strikethrough $:/core/images/strikethrough
$:/core/images/subscript $:/core/images/subscript
$:/core/images/superscript $:/core/images/superscript
$:/core/images/tag-button $:/core/images/tag-button
$:/core/images/theme-button $:/core/images/theme-button
$:/core/images/timestamp-off $:/core/images/timestamp-off
$:/core/images/timestamp-on $:/core/images/timestamp-on
$:/core/images/tip $:/core/images/tip
$:/core/images/transcludify $:/core/images/transcludify
$:/core/images/twitter $:/core/images/twitter
$:/core/images/underline $:/core/images/underline
$:/core/images/unfold-all-button $:/core/images/unfold-all-button
$:/core/images/unfold-button $:/core/images/unfold-button
$:/core/images/unlocked-padlock $:/core/images/unlocked-padlock
$:/core/images/up-arrow $:/core/images/up-arrow
$:/core/images/video $:/core/images/video
$:/core/images/warning $:/core/images/warning

SystemTag: $:/tags/ImportPreview

 26 septembre 2018 à 18h14

The system tag $:/tags/ImportPreview marks preview types for the import listing

The following tiddlers are tagged with $:/tags/ImportPreview

caption
$:/core/ui/ImportPreviews/Diff Diff
$:/core/ui/ImportPreviews/DiffFields Diff (champs)
$:/core/ui/ImportPreviews/Fields Champs
$:/core/ui/ImportPreviews/Text Texte
$:/core/ui/ImportPreviews/TextRaw Texte (brut)

SystemTag: $:/tags/KeyboardShortcut

 

The system tag $:/tags/KeyboardShortcut defines the tagged Tiddler as a Keyboard Shortcut Tiddler, a container for actions that get triggered when its corresponding Keyboard Shortcut Descriptor in its key field matches a keyboard combination executed by the User

The following tiddlers are tagged with $:/tags/KeyboardShortcut

caption
$:/core/ui/KeyboardShortcuts/advanced-search $:/core/ui/KeyboardShortcuts/advanced-search
$:/core/ui/KeyboardShortcuts/change-sidebar-layout $:/core/ui/KeyboardShortcuts/change-sidebar-layout
$:/core/ui/KeyboardShortcuts/new-image $:/core/ui/KeyboardShortcuts/new-image
$:/core/ui/KeyboardShortcuts/new-journal $:/core/ui/KeyboardShortcuts/new-journal
$:/core/ui/KeyboardShortcuts/new-tiddler $:/core/ui/KeyboardShortcuts/new-tiddler
$:/core/ui/KeyboardShortcuts/save-wiki $:/core/ui/KeyboardShortcuts/save-wiki
$:/core/ui/KeyboardShortcuts/sidebar-search $:/core/ui/KeyboardShortcuts/sidebar-search
$:/core/ui/KeyboardShortcuts/switcher $:/core/ui/KeyboardShortcuts/switcher
$:/core/ui/KeyboardShortcuts/toggle-sidebar $:/core/ui/KeyboardShortcuts/toggle-sidebar

SystemTag: $:/tags/Layout

 23 novembre 2020 à 19h21

The system tag $:/tags/Layout marks alternative page layouts that can be switched to.

(No tiddlers are currently tagged with $:/tags/Layout )

SystemTag: $:/tags/Macro

 26 septembre 2018 à 18h14

The system tag $:/tags/Macro marks global macros. It is now deprecated in favour of SystemTag: $:/tags/Global.

The following tiddlers are tagged with $:/tags/Macro

caption
$:/core/macros/colour-picker $:/core/macros/colour-picker
$:/core/macros/copy-to-clipboard $:/core/macros/copy-to-clipboard
$:/core/macros/CSS $:/core/macros/CSS
$:/core/macros/diff $:/core/macros/diff
$:/core/macros/dumpvariables $:/core/macros/dumpvariables
$:/core/macros/export $:/core/macros/export
$:/core/macros/image-picker $:/core/macros/image-picker
$:/core/macros/keyboard-driven-input $:/core/macros/keyboard-driven-input
$:/core/macros/lingo $:/core/macros/lingo
$:/core/macros/list $:/core/macros/list
$:/core/macros/tabs $:/core/macros/tabs
$:/core/macros/tag $:/core/macros/tag
$:/core/macros/tag-picker $:/core/macros/tag-picker
$:/core/macros/thumbnails $:/core/macros/thumbnails
$:/core/macros/timeline $:/core/macros/timeline
$:/core/macros/toc $:/core/macros/toc
$:/core/macros/translink $:/core/macros/translink
$:/core/macros/tree $:/core/macros/tree
$:/edition/tw5.com/dropbox-url.js $:/edition/tw5.com/dropbox-url.js
$:/editions/fr-FR/Macros/list $:/editions/fr-FR/Macros/list
$:/editions/fr-FR/Macros/timeline-title $:/editions/fr-FR/Macros/timeline-title
$:/editions/fr-FR/Macros/toc-caption $:/editions/fr-FR/Macros/toc-caption
$:/editions/fr-FR/Macros/wikitexte-exemple $:/editions/fr-FR/Macros/wikitexte-exemple
$:/editions/fr-FR/util-macros $:/editions/fr-FR/util-macros
$:/editions/tw5.com/doc-macros $:/editions/tw5.com/doc-macros
$:/editions/tw5.com/operator-macros $:/editions/tw5.com/operator-macros
$:/editions/tw5.com/style-guide-macros $:/editions/tw5.com/style-guide-macros
$:/editions/tw5.com/variable-macros $:/editions/tw5.com/variable-macros
$:/editions/tw5.com/version-macros $:/editions/tw5.com/version-macros
$:/editions/tw5.com/wikitext-macros $:/editions/tw5.com/wikitext-macros

SystemTag: $:/tags/Macro/View

 3 janvier 2020 à 9h26

The system tag $:/tags/Macro/View marks macros that are only made available within the main view templates and the preview panel. It is now deprecated in favour of SystemTag $:/tags/Global/View.

(No tiddlers are currently tagged with $:/tags/Macro/View )

SystemTag: $:/tags/Macro/View/Body

 5 mai 2022 à 9h29

The system tag $:/tags/Macro/View/Body marks macros that are only made available within the main view template bodies and the preview panel. It is now deprecated in favour of SystemTag $:/tags/Global/View/Body.

(No tiddlers are currently tagged with $:/tags/Macro/View/Body )

SystemTag: $:/tags/Manager/ItemMain

 26 septembre 2018 à 18h14

The system tag $:/tags/Manager/ItemMain marks the tiddler manager. $:/Manager

The following tiddlers are tagged with $:/tags/Manager/ItemMain

caption
$:/Manager/ItemMain/Fields Champs
$:/Manager/ItemMain/RawText Texte brut
$:/Manager/ItemMain/WikifiedText Texte wikifié

SystemTag: $:/tags/Manager/ItemSidebar

 26 septembre 2018 à 18h14

The system tag $:/tags/Manager/ItemSidebar marks the tiddler manager

The following tiddlers are tagged with $:/tags/Manager/ItemSidebar

caption
$:/Manager/ItemSidebar/Colour Couleur
$:/Manager/ItemSidebar/Icon Icône
$:/Manager/ItemSidebar/Tags Tags
$:/Manager/ItemSidebar/Tools Outils

SystemTag: $:/tags/MoreSideBar

 26 septembre 2018 à 18h14

The system tag $:/tags/MoreSideBar marks tabs in the 'more' sidebar

The following tiddlers are tagged with $:/tags/MoreSideBar

caption
$:/core/ui/MoreSideBar/All Tout
$:/core/ui/MoreSideBar/Drafts Brouillons
$:/core/ui/MoreSideBar/Explorer Explorateur
$:/core/ui/MoreSideBar/Missing Manquants
$:/core/ui/MoreSideBar/Orphans Orphelins
$:/core/ui/MoreSideBar/Plugins Plugins
$:/core/ui/MoreSideBar/Recent Récents
$:/core/ui/MoreSideBar/Shadows Shadows
$:/core/ui/MoreSideBar/System Système
$:/core/ui/MoreSideBar/Tags Tags
$:/core/ui/MoreSideBar/Types Types

SystemTag: $:/tags/MoreSideBar/Plugins

 26 septembre 2018 à 18h14

The system tag $:/tags/MoreSideBar/Plugins marks Sidebar: More: Plugins tab

The following tiddlers are tagged with $:/tags/MoreSideBar/Plugins

caption
$:/core/ui/MoreSideBar/Plugins/Languages Langues
$:/core/ui/MoreSideBar/Plugins/Plugins Plugins
$:/core/ui/MoreSideBar/Plugins/Theme Thèmes

SystemTag: $:/tags/PageControls

 26 septembre 2018 à 18h14

The system tag $:/tags/PageControls marks the page control tools in the sidebar

The following tiddlers are tagged with $:/tags/PageControls

caption
$:/core/ui/Buttons/advanced-search recherche avancée
$:/core/ui/Buttons/close-all fermer tout
$:/core/ui/Buttons/control-panel panneau de contrôle
$:/core/ui/Buttons/encryption chiffrement
$:/core/ui/Buttons/export-page exporter tout
$:/core/ui/Buttons/fold-all replier tous les tiddlers
$:/core/ui/Buttons/full-screen plein-écran
$:/core/ui/Buttons/home accueil
$:/core/ui/Buttons/import importer
$:/core/ui/Buttons/language langue
$:/core/ui/Buttons/layout mise en page
$:/core/ui/Buttons/manager gestionnaire de tiddlers
$:/core/ui/Buttons/more-page-actions plus
$:/core/ui/Buttons/network-activity activité réseau
$:/core/ui/Buttons/new-image nouvelle image
$:/core/ui/Buttons/new-journal 4 nouveau journal
$:/core/ui/Buttons/new-tiddler nouveau tiddler
$:/core/ui/Buttons/palette palette
$:/core/ui/Buttons/permaview permaview
$:/core/ui/Buttons/print imprimer la page
$:/core/ui/Buttons/refresh rafraîchir
$:/core/ui/Buttons/save-wiki enregistrer les modifications
$:/core/ui/Buttons/storyview visualisation du déroulé
$:/core/ui/Buttons/tag-manager gestionnaire de tags
$:/core/ui/Buttons/theme thème
$:/core/ui/Buttons/timestamp horodatage
$:/core/ui/Buttons/unfold-all déplier tous les tiddlers

SystemTag: $:/tags/PageTemplate

 26 septembre 2018 à 18h14

The system tag $:/tags/PageTemplate marks the main page elements

The following tiddlers are tagged with $:/tags/PageTemplate

caption
$:/core/ui/PageTemplate/alerts $:/core/ui/PageTemplate/alerts
$:/core/ui/PageTemplate/drafts $:/core/ui/PageTemplate/drafts
$:/core/ui/PageTemplate/pluginreloadwarning $:/core/ui/PageTemplate/pluginreloadwarning
$:/core/ui/PageTemplate/sidebar $:/core/ui/PageTemplate/sidebar
$:/core/ui/PageTemplate/story $:/core/ui/PageTemplate/story
$:/plugins/tiddlywiki/menubar/menu $:/plugins/tiddlywiki/menubar/menu

SystemTag: $:/tags/Palette

 26 septembre 2018 à 18h14

The system tag $:/tags/Palette marks colour palettes

The following tiddlers are tagged with $:/tags/Palette

caption
$:/palettes/Blanca A clean white palette to let you focus
$:/palettes/Blue A blue theme
$:/palettes/ContrastDark High contrast and unambiguous (dark version)
$:/palettes/ContrastLight High contrast and unambiguous (light version)
$:/palettes/CupertinoDark A macOS inspired dark palette
$:/palettes/DarkPhotos Good with dark photo backgrounds
$:/palettes/DesertSand A desert sand palette
$:/palettes/GruvboxDark Retro groove color scheme
$:/palettes/Muted Bright tiddlers on a muted background
$:/palettes/Nord An arctic, north-bluish color palette.
$:/palettes/Rocker A dark theme
$:/palettes/SolarFlare Warm, relaxing earth colours
$:/palettes/SolarizedDark Precision dark colors for machines and people
$:/palettes/SolarizedLight Precision colors for machines and people
$:/palettes/SpartanDay Cold, spartan day colors
$:/palettes/SpartanNight Dark spartan colors
$:/palettes/Twilight Delightful, soft darkness.
$:/palettes/Vanilla Pale and unobtrusive

SystemTag: $:/tags/PluginLibrary

 26 septembre 2018 à 18h14

The system tag $:/tags/PluginLibrary marks the plugin library

The following tiddlers are tagged with $:/tags/PluginLibrary

caption
$:/config/OfficialPluginLibrary Bibliothèque officielle des plugins TiddlyWiki

SystemTag: $:/tags/RawMarkup

 27 septembre 2018 à 9h43

The system tag $:/tags/RawMarkup marks plain text tiddlers to be included as raw markup at the bottom of the <head> section in the generated HTML file.

Note that the wiki must be saved and reloaded in order for a raw markup tiddler to take effect.

(No tiddlers are currently tagged with $:/tags/RawMarkup )

SystemTag: $:/tags/RawMarkupWikified

 27 septembre 2018 à 9h43

The system tag $:/tags/RawMarkupWikified marks wikified tiddlers to be included as raw markup at the bottom of the <head> section in the generated HTML file.

Note that the wiki must be saved and reloaded in order for a raw markup tiddler to take effect. Also note that global macros are not available by default within raw markup tiddlers; you can use the ImportVariablesWidget to explicitly import them.

(No tiddlers are currently tagged with $:/tags/RawMarkupWikified )

SystemTag: $:/tags/RawMarkupWikified/BottomBody

 28 septembre 2018 à 15h58

Depuis : 5.1.18 The system tag $:/tags/RawMarkupWikified/BottomBody marks wikified tiddlers to be included as raw markup at the bottom of the <body> section in the generated HTML file.

Note that the wiki must be saved and reloaded in order for a raw markup tiddler to take effect. Also note that global macros are not available by default within raw markup tiddlers; you can use the ImportVariablesWidget to explicitly import them.

(No tiddlers are currently tagged with $:/tags/RawMarkupWikified/BottomBody )

SystemTag: $:/tags/RawMarkupWikified/TopBody

 28 septembre 2018 à 15h58

Depuis : 5.1.18 The system tag $:/tags/RawMarkupWikified/TopBody marks wikified tiddlers to be included as raw markup at the top of the <body> section in the generated HTML file.

Note that the wiki must be saved and reloaded in order for a raw markup tiddler to take effect. Also note that global macros are not available by default within raw markup tiddlers; you can use the ImportVariablesWidget to explicitly import them.

The following tiddlers are tagged with $:/tags/RawMarkupWikified/TopBody

caption
$:/SplashScreen $:/SplashScreen

SystemTag: $:/tags/RawMarkupWikified/TopHead

 28 septembre 2018 à 15h57

Depuis : 5.1.18 The system tag $:/tags/RawMarkupWikified/TopHead marks wikified tiddlers to be included as raw markup at the top of the <head> section in the generated HTML file.

Note that the wiki must be saved and reloaded in order for a raw markup tiddler to take effect. Also note that global macros are not available by default within raw markup tiddlers; you can use the ImportVariablesWidget to explicitly import them.

(No tiddlers are currently tagged with $:/tags/RawMarkupWikified/TopHead )

SystemTag: $:/tags/RawStaticContent

 26 septembre 2018 à 18h14

The system tag $:/tags/RawStaticContent marks raw content to be saved into the TW code

(No tiddlers are currently tagged with $:/tags/RawStaticContent )

SystemTag: $:/tags/RemoteAssetInfo

 26 septembre 2018 à 18h14

The system tag $:/tags/RemoteAssetInfo marks plugin import handling

(No tiddlers are currently tagged with $:/tags/RemoteAssetInfo )

SystemTag: $:/tags/SearchResults

 26 septembre 2018 à 18h14

The system tag $:/tags/SearchResults marks customised search results

The following tiddlers are tagged with $:/tags/SearchResults

caption
$:/core/ui/DefaultSearchResultList Liste

SystemTag: $:/tags/ServerConnection

 26 septembre 2018 à 18h14

The system tag $:/tags/ServerConnection marks plugin import handling

(No tiddlers are currently tagged with $:/tags/ServerConnection )

SystemTag: $:/tags/SideBar

 26 septembre 2018 à 18h14

The system tag $:/tags/SideBar marks sidebar tabs

The following tiddlers are tagged with $:/tags/SideBar

caption
$:/core/ui/SideBar/More Plus
$:/core/ui/SideBar/Open Ouverts
$:/core/ui/SideBar/Recent Récents
$:/core/ui/SideBar/Tools Outils
Informations pour les traducteurs Informations pour les traducteurs
TableOfContents Sommaire

SystemTag: $:/tags/SideBarSegment

 26 septembre 2018 à 18h14

The system tag $:/tags/SideBarSegment marks sidebar segments

Note: You can rearrange the segments by drag-and-dropping the titles inside the tag pill

The following tiddlers are tagged with $:/tags/SideBarSegment

caption
$:/core/ui/SideBarSegments/page-controls $:/core/ui/SideBarSegments/page-controls
$:/core/ui/SideBarSegments/search $:/core/ui/SideBarSegments/search
$:/core/ui/SideBarSegments/site-subtitle $:/core/ui/SideBarSegments/site-subtitle
$:/core/ui/SideBarSegments/site-title $:/core/ui/SideBarSegments/site-title
$:/core/ui/SideBarSegments/tabs $:/core/ui/SideBarSegments/tabs

SystemTag: $:/tags/StartupAction

 26 septembre 2018 à 18h14

The system tag $:/tags/StartupAction marks actions executed on all platforms

(No tiddlers are currently tagged with $:/tags/StartupAction )

SystemTag: $:/tags/StartupAction/Browser

 26 septembre 2018 à 18h14

The system tag $:/tags/StartupAction/Browser marks actions only executed when running in the browser

(No tiddlers are currently tagged with $:/tags/StartupAction/Browser )

SystemTag: $:/tags/StartupAction/Node

 26 septembre 2018 à 18h14

The system tag $:/tags/StartupAction/Node marks actions only executed when running under Node.js

(No tiddlers are currently tagged with $:/tags/StartupAction/Node )

SystemTag: $:/tags/Stylesheet

 26 septembre 2018 à 18h14

The system tag $:/tags/Stylesheet marks that a tiddler should be applied as a CSS stylesheet

The following tiddlers are tagged with $:/tags/Stylesheet

caption
$:/_tw_shared/styles $:/_tw_shared/styles
$:/_tw5.com-styles $:/_tw5.com-styles
$:/_tw5.com/CustomStoryTiddlerTemplateDemo/Styles $:/_tw5.com/CustomStoryTiddlerTemplateDemo/Styles
$:/editions/fr-FR/CSS stylesheets/latex $:/editions/fr-FR/CSS stylesheets/latex
$:/editions/fr-FR/CSS Stylesheets/mesStyles $:/editions/fr-FR/CSS Stylesheets/mesStyles
$:/editions/fr-FR/CSS Stylesheets/utils $:/editions/fr-FR/CSS Stylesheets/utils
$:/editions/tw5.com/doc-styles $:/editions/tw5.com/doc-styles
$:/plugins/tiddlywiki/internals/styles $:/plugins/tiddlywiki/internals/styles
$:/plugins/tiddlywiki/menubar/styles $:/plugins/tiddlywiki/menubar/styles
$:/plugins/tiddlywiki/railroad/railroad-diagrams.css $:/plugins/tiddlywiki/railroad/railroad-diagrams.css
$:/SavingThumbnailsStyles $:/SavingThumbnailsStyles
$:/themes/tiddlywiki/snowwhite/base $:/themes/tiddlywiki/snowwhite/base
$:/themes/tiddlywiki/vanilla/base $:/themes/tiddlywiki/vanilla/base
Custom data-styles Custom data-styles

SystemTag: $:/tags/TagDropdown

 26 septembre 2018 à 18h14

The system tag $:/tags/TagDropdown marks tags dropdown sorting

(No tiddlers are currently tagged with $:/tags/TagDropdown )

SystemTag: $:/tags/TextEditor/Snippet

 28 août 2020 à 16h41

The system tag $:/tags/TextEditor/Snippet marks text snippets

The following tiddlers are tagged with $:/tags/TextEditor/Snippet

caption
$:/language/Snippets/ListByTag Liste de tiddlers par tag
$:/language/Snippets/MacroDefinition Définition de macro
$:/language/Snippets/Table4x3 Tableau avec 4 colonnes par trois lignes
$:/language/Snippets/TableOfContents Table des matières

SystemTag: $:/tags/TiddlerInfo

 26 septembre 2018 à 18h14

The system tag $:/tags/TiddlerInfo marks tiddler info panel tabs

The following tiddlers are tagged with $:/tags/TiddlerInfo

caption
$:/core/ui/TiddlerInfo/Advanced Avancé
$:/core/ui/TiddlerInfo/Fields Champs
$:/core/ui/TiddlerInfo/List Liste
$:/core/ui/TiddlerInfo/Listed Listé
$:/core/ui/TiddlerInfo/References Pointeurs
$:/core/ui/TiddlerInfo/Tagging Étiquetage
$:/core/ui/TiddlerInfo/Tools Outils
$:/editions/tw5.com/TiddlerInfo/Sources Sources

SystemTag: $:/tags/TiddlerInfo/Advanced

 26 septembre 2018 à 18h14

The system tag $:/tags/TiddlerInfo/Advanced marks tabs under the advanced tiddler tab

The following tiddlers are tagged with $:/tags/TiddlerInfo/Advanced

caption
$:/core/ui/TiddlerInfo/Advanced/PluginInfo $:/core/ui/TiddlerInfo/Advanced/PluginInfo
$:/core/ui/TiddlerInfo/Advanced/ShadowInfo $:/core/ui/TiddlerInfo/Advanced/ShadowInfo

SystemTag: $:/tags/TiddlerInfoSegment

 26 septembre 2018 à 18h14

The system tag $:/tags/TiddlerInfoSegment marks tiddler info panel segments

(No tiddlers are currently tagged with $:/tags/TiddlerInfoSegment )

SystemTag: $:/tags/ToolbarButtonStyle

 26 septembre 2018 à 18h14

The system tag $:/tags/ToolbarButtonStyle marks the style of the buttons

The following tiddlers are tagged with $:/tags/ToolbarButtonStyle

caption
$:/core/buttonstyles/Borderless Sans bordure
$:/core/buttonstyles/Boxed Avec une bordure
$:/core/buttonstyles/Rounded Arrondis

SystemTag: $:/tags/TopLeftBar

 26 septembre 2018 à 18h14

The system tag $:/tags/TopLeftBar marks the top left bar

(No tiddlers are currently tagged with $:/tags/TopLeftBar )

SystemTag: $:/tags/TopRightBar

 26 septembre 2018 à 18h14

The system tag $:/tags/TopRightBar marks the top right bar

The following tiddlers are tagged with $:/tags/TopRightBar

caption
$:/core/ui/TopBar/menu $:/core/ui/TopBar/menu
Documentation pour les traducteurs Documentation pour les traducteurs

SystemTag: $:/tags/ViewTemplate

 26 septembre 2018 à 18h14

The system tag $:/tags/ViewTemplate identifies the individual segments that are displayed as part of the view template

The following tiddlers are tagged with $:/tags/ViewTemplate

caption
$:/core/ui/ViewTemplate/body $:/core/ui/ViewTemplate/body
$:/core/ui/ViewTemplate/classic $:/core/ui/ViewTemplate/classic
$:/core/ui/ViewTemplate/subtitle $:/core/ui/ViewTemplate/subtitle
$:/core/ui/ViewTemplate/tags $:/core/ui/ViewTemplate/tags
$:/core/ui/ViewTemplate/title $:/core/ui/ViewTemplate/title
$:/core/ui/ViewTemplate/unfold $:/core/ui/ViewTemplate/unfold
$:/editions/tw5.com/operator-template $:/editions/tw5.com/operator-template
$:/editions/tw5.com/systemtag-template $:/editions/tw5.com/systemtag-template

SystemTag: $:/tags/ViewTemplate/Subtitle

 14 juillet 2022 à 10h32

The system tag $:/tags/ViewTemplate/Subtitle identifies the individual segments that are displayed as the tiddler subtitle

The following tiddlers are tagged with $:/tags/ViewTemplate/Subtitle

caption
$:/core/ui/ViewTemplate/subtitle/modified $:/core/ui/ViewTemplate/subtitle/modified
$:/core/ui/ViewTemplate/subtitle/modifier $:/core/ui/ViewTemplate/subtitle/modifier

SystemTag: $:/tags/ViewToolbar

 26 septembre 2018 à 18h14

The system tag $:/tags/ViewToolbar marks the view mode tiddler toolbar

The following tiddlers are tagged with $:/tags/ViewToolbar

caption
$:/core/ui/Buttons/clone cloner
$:/core/ui/Buttons/close fermer
$:/core/ui/Buttons/close-others fermer les autres tiddlers
$:/core/ui/Buttons/delete supprimer
$:/core/ui/Buttons/edit éditer
$:/core/ui/Buttons/export-tiddler exporter ce tiddler
$:/core/ui/Buttons/fold replier le tiddler
$:/core/ui/Buttons/fold-bar Barre de repli
$:/core/ui/Buttons/fold-others replier les autres tiddlers
$:/core/ui/Buttons/info informations
$:/core/ui/Buttons/more-tiddler-actions plus
$:/core/ui/Buttons/new-here nouveau, à partir d'ici
$:/core/ui/Buttons/new-journal-here 4 nouveau journal, à partir d'ici
$:/core/ui/Buttons/open-window ouvrir dans une nouvelle fenêtre
$:/core/ui/Buttons/permalink permalink
$:/core/ui/Buttons/permaview permaview

Tags système

 24 juin 2015 à 10h19

Les tags système sont employés pour donner un comportement particulier aux tiddlers.

Tags système disponibles

Liste des tags système disponibles

  • Éléments à placer au sommet du déroulé
  • Recherche Avancée +/- d'Onglets
  • Créer un Gabarit d'Alerte
  • Éléments à placer en queue de déroulé
  • panneau de contrôle +/- Onglets
  • /Avancé +/- Options
  • /Apparence +/- Options
  • /Info +/- Options
  • /Paramétrage +/- Options
  • /Barres d'outils +/- Options
  • Tiddlers, Édition Gabarit +/- zones
  • Tiddlers, Édition +/- de boutons accessibles
  • Créer un Gabarit d'Export
  • Ajout au choix déroulant des ex. de filtres en recherche avancée
  • Ajouter des images (noyau)
  • Ajouter des macros globales
  • Menu latéral/Plus +/- Options
  • Menu latéral/Outils +/- Options
  • Page, Gabarit +/- de zones
  • Couleur +/- de palettes
  • Plugin +/- de bibliothèques
  • Intégrer les balises brutes à la génération du fichier HTML
  • Créer un Gabarit pour les résultats de recherche
  • Menu latéral +/- d'Onglets
  • Ajout d'un tiddler feuille de style CSS
  • Tiddler informations +/- Onglets
  • Tiddler informations/Outils +/- Options
  • +/- Menu Haut-Gauche
  • +/- Menu Haut-Droit
  • Tiddlers, Affichage Gabarit +/- zones
  • Tiddlers, Affichage +/- de boutons accessibles

Tags système utilisés

Listes des tags système en cours d'utilisation dans ce wiki :

Tiddlers système

 24 juin 2015 à 10h28

Un tiddler système correspond à tout tiddler dont le titre commence par $:/ ; de tels tiddlers sont automatiquement ignorés de plusieurs opérations. Ils n'apparaissent pas dans les listes des résultats de recherche, mais une liaison directe vers l'un d'eux fonctionne de façon classique.

TiddlyWiki considère tout comme un tiddler , y compris ses composants internes et sa configuration. Ainsi, même un TiddlyWiki, apparemment vide, contient, en fait, des dizaines de tiddlers nécessaires à son bon fonctionnement. L'emploie de tiddlers système évite les méprises des utilisateurs occasionnels.

Les tiddlers système actuels sont :

$:/_tw_shared/favicons/classic.tiddlywiki.com
$:/_tw_shared/favicons/links.tiddlywiki.org
$:/_tw_shared/favicons/marketplace
$:/_tw_shared/favicons/talk.tiddlywiki.org
$:/_tw_shared/favicons/tiddlywiki.com
$:/_tw_shared/favicons/tiddlywiki.com.dev
$:/_tw_shared/favicons/tiddlywiki.com.prerelease
$:/_tw_shared/favicons/tiddlywiki.com.upgrade
$:/_tw_shared/favicons/tiddlywiki.org
$:/_tw_shared/sites
$:/_tw_shared/sites/classic.tiddlywiki.com
$:/_tw_shared/sites/links.tiddlywiki.org
$:/_tw_shared/sites/marketplace
$:/_tw_shared/sites/talk.tiddlywiki.org
$:/_tw_shared/sites/tiddlywiki.com
$:/_tw_shared/sites/tiddlywiki.com.dev
$:/_tw_shared/sites/tiddlywiki.com.prerelease
$:/_tw_shared/sites/tiddlywiki.com.upgrade
$:/_tw_shared/sites/tiddlywiki.org
$:/_tw_shared/styles
$:/_tw5.com-card-template
$:/_tw5.com-styles
$:/_tw5.com/CustomStoryTiddlerTemplateDemo/Filter
$:/_tw5.com/CustomStoryTiddlerTemplateDemo/Styles
$:/_tw5.com/CustomStoryTiddlerTemplateDemo/Template
$:/_tw5.com/CustomTiddlerColourCascadeDemo
$:/_tw5.com/CustomTiddlerIconCascadeDemo
$:/Acknowledgements
$:/boot/boot.css
$:/boot/boot.js
$:/boot/bootprefix.js
$:/build
$:/config/OriginalTiddlerPaths
$:/config/ViewTemplateTitleFilters/fr-default
$:/config/WikiParserRules/Inline/wikilink
$:/config/zotero-group
$:/ContributionBanner
$:/core
$:/core/macros/list
$:/core/macros/tag
$:/core/templates/static.content
$:/core/ui/DefaultSearchResultList
$:/core/ui/ListItemTemplate
$:/core/ui/SideBar/Open
$:/core/ui/TagPickerTagTemplate
$:/core/ui/ViewTemplate/title/fr-default
$:/CurvedText
$:/DefaultTiddlers
$:/deprecated
$:/docs/anyField
$:/edition/tw5.com/dropbox-url.js
$:/editions/fr-FR/CSS stylesheets/latex
$:/editions/fr-FR/CSS Stylesheets/mesStyles
$:/editions/fr-FR/CSS Stylesheets/utils
$:/editions/fr-FR/download-empty
$:/editions/fr-FR/Macros/list
$:/editions/fr-FR/Macros/timeline-title
$:/editions/fr-FR/Macros/toc-caption
$:/editions/fr-FR/Macros/wikitexte-exemple
$:/editions/fr-FR/snippets/download-empty-button
$:/editions/fr-FR/util-macros
$:/editions/tw5.com/doc-macros
$:/editions/tw5.com/doc-styles
$:/editions/tw5.com/download-empty
$:/editions/tw5.com/if-macro.js
$:/editions/tw5.com/macro-examples/qualify-transcluded
$:/editions/tw5.com/macro-examples/say-hi
$:/editions/tw5.com/macro-examples/say-hi-using-variables
$:/editions/tw5.com/macro-examples/tags-of-current-tiddler
$:/editions/tw5.com/macro-examples/tv-get-export-image-link
$:/editions/tw5.com/macro-examples/tv-wikilink-tooltip
$:/editions/tw5.com/menuitems/gettingstarted
$:/editions/tw5.com/operator-macros
$:/editions/tw5.com/operator-template
$:/editions/tw5.com/railroad/macro-parameter-value
$:/editions/tw5.com/snippets/download-empty-button
$:/editions/tw5.com/style-guide-macros
$:/editions/tw5.com/systemtag-template
$:/editions/tw5.com/TiddlerInfo/Sources
$:/editions/tw5.com/variable-macros
$:/editions/tw5.com/version-macros
$:/editions/tw5.com/widget-examples/qualify-transcluded
$:/editions/tw5.com/wikitext-macros
$:/favicon.ico
$:/green_favicon.ico
$:/HistoryList
$:/isEncrypted
$:/language
$:/language/Help/build
$:/languages/fr-FR
$:/library/sjcl.js
$:/plugins/tiddlywiki/browser-sniff
$:/plugins/tiddlywiki/evernote
$:/plugins/tiddlywiki/internals
$:/plugins/tiddlywiki/menubar
$:/plugins/tiddlywiki/nodewebkitsaver
$:/plugins/tiddlywiki/railroad
$:/plugins/tiddlywiki/railroad/readme
$:/plugins/tiddlywiki/railroad/syntax
$:/plugins/tiddlywiki/railroad/syntax-string
$:/SavingDetailsFilter
$:/SavingDetailsTemplate
$:/SavingThumbnailsStyles
$:/SavingThumbnailsTemplate
$:/SiteSubtitle
$:/SiteTitle
$:/SplashScreen
$:/state/tab/sidebar--1835078512
$:/StaticBanner
$:/status/RequireReloadDueToPluginChange
$:/StoryList
$:/SVGExampleRadius
$:/tags/MenuBar
$:/tags/TiddlyWikiSites
$:/temp/info-plugin
$:/theme
$:/themes/tiddlywiki/centralised
$:/themes/tiddlywiki/heavier
$:/themes/tiddlywiki/readonly
$:/themes/tiddlywiki/seamless
$:/themes/tiddlywiki/snowwhite
$:/themes/tiddlywiki/starlight
$:/themes/tiddlywiki/tight
$:/themes/tiddlywiki/tight-heavier
$:/themes/tiddlywiki/vanilla
$:/themes/tiddlywiki/vanilla/options/sidebarlayout

TabbedExampleType

127.0.0.1 27 janvier 2015 à 17h35

toc-tabbed-external-nav

Table Classes, Captions, Headers and Footers

 19 août 2022 à 11h13

Table CSS classes, captions, headers and footers can be specified as special pseudo-rows. The following example:

  • |myclass anotherClass|k assigns the CSS classes "myclass" and "anotherClass" to the table
  • |This is a caption |c gives the table the caption "This is a caption"
  • |Header|Header|h adds a header row of cells with the text "Header"
  • |Footer|Footer|f adds a footer row of cells with the text "Footer"

|myclass anotherClass|k
|This is a caption |c
|Cell1 |Cell2 |
|Cell3 |Cell3 |
|Header|Header|h
|Footer|Footer|f

Affichera ceci :

This is a caption
Cell1Cell2
Cell3Cell3
HeaderHeader
FooterFooter

table-example

 19 avril 2022 à 19h47
cellule unecellule deux
cellule troiscellule quatre

Macros Tables des matières

 21 juin 2015 à 10h23

TiddlyWiki fournit plusieurs macros permettant de générer une arborescence de liens vers des tiddlers à partir de l'analyse des tags :

toc
Un arbre simple
toc-expandable
Un arbre dont les branches peuvent être déployées ou rétractées
toc-selective-expandable
Un arbre dont les branches non-vides peuvent être déployées ou rétractées
toc-tabbed-internal-nav et toc-tabbed-external-nav
Une navigation en deux panneaux :
  • sur la gauche, une arborescence extensible sélectivement se comportant comme un ensemble d'onglets verticaux
  • sur la droite, le contenu du tiddler sélectionné par l'utilisateur dans l'arborescence

La différence entre ces deux derniers provient de ce qu'il advient lors d'un clic de l'utilisateur sur un lien du panneau droit :

toc-tabbed-internal-nav
Le tiddler cible s'affiche dans le panneau droit, remplaçant le tiddler contenant le lien
toc-tabbed-external-nav
Le tiddler cible s'affiche de façon classique (selon la configuration de l'affichage du déroulé par l'utilisateur)

Structure

Le premier niveau de l'arborescence est constitué de tiddlers qui portent une étiquette particulière, appelée tag racine. Les tiddlers marqués par l'un de ceux-là forment le niveau suivant, et ainsi de suite.

À chaque niveau, les tidllers peuvent être ordonnés via le champ list de leur tiddler tag parent. Ils peuvent aussi être triés en paramétrant la macro sort

L'arborescence affiche le champ caption du tiddler s'il en a un, sinon son titre.

Chaque tiddler est affiché comme un lien, mais vous pouvez règler ceci en affectant la valeur no au champ toc-link du tiddler. Ainsi dans cet exemple, le tiddler SecondThree est affecté de la sorte. Cliquer sur un tel tiddler dans l'arborescence permettra de déployer ou rétracter sa branche.

La table des matières génère une liste HTML ordonnée. Les balises <ol> ont toujours la classe tc-toc. Les éléments d'arborescences déployables ont la classe additionnelle tc-toc-expandable. Les arborescence déployables sélectivement (dont celles du deuxième panneau de navigation) sont munies de tc-toc-selective-expandable.

Pour intégrer une table des matières dans le menu latéral, voir un nouvel onglet dans le menu latéral.

Paramètres

tag
Le tag racine indiquant le premier niveau de l'arborescence
sort
Une extra étape de filtre optionelle, e.g. sort[title]

Ces deux paramètres sont combinés en une seule expression de filtre de cette façon :

[tag[$tag$]$sort$]

toc-tabbed-internal-nav et toc-tabbed-external-nav ont, en sus, d'autres paramètres :

selectedTiddler
Le titre du tiddler d'état attribué au tiddler en cours sélectionné, par défaut $:/temp/toc/selectedTiddler. Il est recommandé d'employer un tiddler système
unselectedText
Le texte affiché quand aucun tiddler n'est sélectionné dans l'arborescence
missingText
Le texte affiché si le tiddler sélectionné est manquant
template
De manière optionnelle, le titre du tiddler gabarit lors de la transclusion du tiddler sélectionné dans le panneau de droite

Exemples

Macros Tables des matières (Exemples)

 21 juin 2015 à 10h24

Cet exemple découle de tables des matières issues du tag racine Contents. Vous pourrez découvrir leurs structures en cliquant sur ces tags pilules :

Cet autre exemple avec onglets emploie, en plus, la table des matières réelle de cette documentation.

<div class="tc-table-of-contents">
<<toc "Contents">>
</div>

Table des matières

 21 juin 2015 à 10h25

TableOfContentsMacro

 5 janvier 2015 à 10h28

La macro TableOfContents (Table des Matières) produit une arborescence hiérarchique de tiddlers, en se basant sur leurs tags.

Les entrées de premier niveau de la table des matières sont définies par un tag racine. Les sous-entrées de chacune de ces entrées sont taguées avec le titre de l'entrée. Les entrées peuvent être triées à l'aide du champ list du tiddler de tag correspondant, comme décrit dans Tagging.

Le libellé utilisé pour chaque entrée est tiré du champ caption s'il est présent ; dans le cas contraire, c'est le titre (champ title) qui est utilisé.

Les entrées sont affichées sous forme de liens vers le tiddler correspondant, à moins que le tiddler contienne un champ toc-link avec la valeur no. Dans les exemples ci-dessous, l'entrée SecondThree est configurée ainsi, de manière à ne pas apparaître comme un lien.

Il existe plusieurs variantes de cette macro :

  • <<toc>> produit une arborescence hiérarchique de liens simple
  • <<toc-expandable>> produit une arborescence de liens développable
  • <<toc-selective-expandable>> produit une arborescence de liens développable où les boutons développer / contracter ne sont affichés que pour les entrées qui possèdent des nœuds fils

Les macros génèrent des listes HTML ordonnées. Les éléments <ol> bénéficient de la classe tc-toc, ceux de la variante expandable bénéficiant également de la classe tc-toc-expandable tandis que ceux de la variante selective expandable bénéficient de la classe tc-toc-selective-expandable.

Paramètres

PositionNomDescriptionDéfaut
1retagLe tag racine qui identifie le premier niveau de la hiérachie
2esortSous-fitre optionnel de tri (par exemple sort[title])

Les paramètres tag et sort sont combinés pour construire une expression de filtre de la forme :

[tag[$tag$]$sort$]

Exemples

Dans les exemples suivants, les entrées de premier niveau de la table des matières sont définies par leur tag racine Contents. Les sous-entrées sous chacune de ces entrées sont taguées avec le titre de leur parent, ici First, Second, Third, et Fourth. Au niveau du dessous, seul SecondThree comporte des sous-entrées.

Voici la structure des tags, affichée à l'aide de pastilles de tag cliquables :

Pour des instructions sur la manière d'ajouter une table des matières dans la barre latérale, voyez : Comment ajouter un nouvel onglet dans la barre latérale.

Exemple Table des matières: Développable

 21 juin 2015 à 9h26

<div class="tc-table-of-contents">
<<toc-expandable "Contents">>
</div>

Tableaux en WikiTexte

 22 avril 2022 à 14h48

Concepts de base

TiddlyWiki5 forme les tableaux au moyen du signe barre verticale |, de cette façon :

|!Cell1 |!Cell2 |
|Cell3 |Cell4 |

Le point d'exclamation marque les cellules d'entête :

Cell1Cell2
Cell3Cell4

L'alignement horizontal

L’alignement horizontal des cellules du tableau est contrôlé par l'insertion d'un espace avant/après le contenu de la cellule. Par exemple:

|Contenu aligné à gauche |
| Contenu aligné à droite|
| Contenu centré |
|+++ Une très grande cellule pour vous montrer l'alignement dans la colonne +++|

Affichera ceci :

Contenu aligné à gauche
Contenu aligné à droite
Contenu centré
+++ Une très grande cellule pour vous montrer l'alignement dans la colonne +++

L'alignement vertical

L’alignement vertical des cellules du tableau est contrôlé par l'insertion, comme premier caractère de la cellule, soit d'un ^ pour un alignement en haut ou un , pour un alignement en bas. La combinaison avec l'alignement horizontal reste valable.

Exemple :

| ::<br>:: |^haut gauche |^ haut centré |^ haut droit|
| ::<br>::<br>:: |milieu gauche | milieu centré | milieu droit|
| ::<br>::|,bas gauche |, bas centré |, bas droit|

Affichera ceci :

::
::
haut gauchehaut centréhaut droit
::
::
::
milieu gauchemilieu centrémilieu droit
::
::
bas gauchebas centrébas droit

Si vous voulez afficher un ^ou un , comme premier caractère d'une cellule alignée à gauche, vous devez utiliser la technique de l'« échappement html ». Voir, à ce sujet : Mise en forme en WikiTexte.

^&#94;
,&#44;

La fusion des cellules

Pour fusionner le contenu de la cellule située au dessus utiliser ~. Pour fusionner avec celle de gauche < et > pour celle de droite. Par exemple :

|Cell1 |Cell2 |Cell3 |Cell4 |
|Cell5 |Cell6 |Cell7 |<|
|Cell5 |~|Cell7 |Cell8 |
|>|Cell9 |Cell10 |Cell11 |

Affichera ceci :

Cell1Cell2Cell3Cell4
Cell5Cell6Cell7
Cell5Cell7Cell8
Cell9Cell10Cell11

Classes de tableau, légendes, en-têtes et pieds de tableau

Des classes CSS, des légendes, des en-têtes et pieds de tableau peuvent être spécifiés comme pseudo-lignes spéciales :

|maclasse autreClass|k
|Ceci est une légende |c
|Cell1 |Cell2 |
|Cell3 |Cell4 |
|Entête|Entête|h
|Pied|Pied|f

Affichera ceci :

Ceci est une légende
Cell1Cell2
Cell3Cell4
EntêteEntête
PiedPied

Tables in WikiText CSS Utility Classes

 10 octobre 2022 à 8h43

WikiText tables can be styled by applying CSS classes. For basic information on wiktext tables and how to style them, see Tables in WikiText.

Table CSS classes, captions, headers and footers can be specified as special pseudo-rows. The following example:

  • |myclass anotherClass|k assigns the CSS classes "myclass" and "anotherClass" to the table
  • |This is a caption |c gives the table the caption "This is a caption"
  • |Header|Header|h adds a header row of cells with the text "Header"
  • |Footer|Footer|f adds a footer row of cells with the text "Footer"

|myclass anotherClass|k
|This is a caption |c
|Cell1 |Cell2 |
|Cell3 |Cell3 |
|Header|Header|h
|Footer|Footer|f

Affichera ceci :

This is a caption
Cell1Cell2
Cell3Cell3
HeaderHeader
FooterFooter

As seen above, the resulting table is left aligned and grows to fit the content. This is the browser default layout behaviour for tables. To get another behaviour, various CSS classes can be added into the "k row".

Utility Classes

Depuis : 5.2.4 The following outlines a few predefined CSS classes intended to make it simpler to style HTML block-elements and wikitext tables.

General Utility Classes

tc-centerCentres a block-element to the middle of the container
tc-max-width Expands a block-element to use the maximum width of the container
tc-max-width-80Sets the width of a block-element to use 80% of the maximum container width. This setting is useful with the tc-center class
tc-edit-max-width Expands TextWidgets to use the maximum available width. See ControlPanel -> Info -> Basics
tc-first-link-nowrapEnsures that any links in the first table column will never wrap to the next line

Table Utility Classes

tc-table-no-borderRemoves the borders of a table
tc-first-col-min-widthThe first column of a table will take up minimal possible width. It adapts to the content

Examples

The following examples apply the style classes to tables but the "General Utility Classes" can as well be used on DIVs or other HTML block elements

Centred Table

To center a table horizontally, use tc-center:

|tc-center|k
|This is a caption |c
|Cell1 |Cell2 |
|Cell3 |Cell4 |
|Header|Header|h
|Footer|Footer|f

Affichera ceci :

This is a caption
Cell1Cell2
Cell3Cell4
HeaderHeader
FooterFooter

Centred Table, 80% Width

To add empty left and right margins to a table that is otherwise full-tiddler-width, you can use tc-max-width-80

|tc-center tc-max-width-80|k
|This is a caption |c
|Cell1 |<<.lorem>> |
|<<.lorem>> |Cell4 |
|Header|Header|h

Affichera ceci :

This is a caption
Cell1Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Cell4
HeaderHeader

Table with Maximum Width

To expand a table to full tiddler width, use tc-max-width

|tc-max-width|k
|Header|Header|h
|Cell1 |Cell2 |
|Cell3 |Cell4 |

Affichera ceci :

HeaderHeader
Cell1Cell2
Cell3Cell4

Table with First Column Minimum Width

The following example shows a simple "form" where the first columns width is adjusted to its content by means of tc-first-col-min-width

|tc-max-width tc-first-col-min-width|k
|Header|Header|h
|Cell1 |<$edit-text tiddler="$:/temp/test-table-input" tag="input" field="test"/> |
|Cell3 |<$edit-text tiddler="$:/temp/test-table-input" field="text"/>  |

Affichera ceci :

HeaderHeader
Cell1
Cell3

Table with Maximum Width TextWidgets

Here, the previous "form" is styled further to give the TextWidgets full width by adding the class tc-edit-max-width

|tc-max-width tc-first-col-min-width tc-edit-max-width|k
|Header|Header|h
|Cell1 |<$edit-text tiddler="$:/temp/test-table-input" tag="input" field="test"/> |
|Cell3 |<$edit-text tiddler="$:/temp/test-table-input" field="text"/>  |

Affichera ceci :

HeaderHeader
Cell1
Cell3

Table with No Borders

The following is a table with maximum width. It contains TextWidgets with maximum width. The first column is set to be minimum width. Further, all links in the first column are set to not line break (wrap) regardless of window resize.

|tc-max-width tc-first-col-min-width tc-edit-max-width tc-table-no-border tc-first-link-nowrap|k
| Cell1|<$edit-text tiddler="$:/temp/test-table-input" tag="input" field="test"/> |
|^ [[Link to a tiddler]]<br>some more text|<$edit-text tiddler="$:/temp/test-table-input" field="text"/>  |

Affichera ceci :

tabs Macro

 21 juillet 2021 à 13h28

The tabs macro presents a selection of tiddlers as a set of tabs that the user can switch between.

The tabs display the caption field of a tiddler if it has one, or the tiddler's title otherwise. If specified, the tabs display the tooltip field of a tiddler as the respective button tooltip.

By default the tabs are arranged horizontally above the content. To get vertical tabs, set the class parameter to tc-vertical.

Parameters

tabsList
A filter selecting which tiddlers to include
default
The title of the tiddler whose tab is to be selected by default, if the state tiddler doesn't exist. The state tiddler takes precedence over this setting
state
The prefix for the title of a state tiddler for noting the currently selected tab, defaulting to $:/state/tab. It is recommended that this be a system tiddler
class
Additional CSS classes for the generated div elements. Multiple classes can be separated with spaces
template
Optionally, the title of a tiddler to use as a template for transcluding the content of the selected tab
buttonTemplate
Optionally, the title of a tiddler to use as a template for transcluding the content of the button for the selected tab
retain
Optionally, "yes" specifies that the content of the tabs should be retained when switching to another tab, avoiding re-rendering it (this can be useful to avoid video or audio sources unexpectedly resetting)
actions
Optionally, actions can be specified that are triggered when changing a tab. Within the actions, the title of the selected tab is available in the currentTab variable and the currentTiddler variable from outside the tabs macro is available in the save-currentTiddler
explicitState
Optionally, an explicit state title can be specified. It will be preferred over the internally computed (qualified) state title

Within the template, the title of the selected tab is available in the currentTab variable.

The currentTiddler variable is not affected by the tabs macro. This can put you in trouble if the list of tabs includes tiddlers that depend on the value of the currentTiddler, for example tiddlers listing children based on its own name. To overcome this problem you can use a TemplateTiddler like the following:

<$tiddler tiddler=<<currentTab>>>
<$transclude mode="block" />
</$tiddler>

Exemples

tabs Macro (Examples)

 21 février 2015 à 21h17

<<tabs "SampleTabOne SampleTabTwo SampleTabThree SampleTabFour" "SampleTabOne" "$:/state/tab1">>

<<tabs "[tag[sampletab]]" "SampleTabTwo" "$:/state/tab2" "tc-vertical">>

<<tabs "[tag[sampletab]nsort[order]]" "SampleTabThree" "$:/state/tab3" "tc-vertical">>

La macro tabs

 24 juin 2015 à 10h18

La macro tabs affiche une liste de tiddlers sous forme d'onglets. L'utilisateur peut passer d'un onglet à l'autre en cliquant. Les onglets sont étiquetés avec le titre du tiddler correspondant, sauf si un champ caption est présent, auquel cas c'est celui-ci qui est utilisé.

Par défaut, les onglets sont disposés horizontalement, le contenu étant affiché en-dessous. Vous pouvez aussi disposer les onglets verticalement en passant en paramètre la classe tc-vertical.

Paramètres

PositionNomDescriptionDéfaut
1retabsListFiltre indiquant les tiddlers à afficher
2edefaultNom du tiddler contenant l'onglet qui s'affichera par défaut
3estateChaîne de caractères permettant de distinguer plusieurs ensembles d'onglets présents dans le même tiddler (l'utilisation du préfixe des tiddlers système est recommandée)$:/state/tab
4eclassClasses CSS supplémentaires pour les trois DIVs imbriquées qui construisent les onglets (vous pouvez indiquer plusieurs classes en les séparant avec des espaces)
5etemplateUn tiddler template optionnel via lequel le contenu de l'onglet doit être rendu

À l'intérieur du template, le titre de l'onglet courant est accessible via la variable currentTab. La variable currentTiddler n'est pas modifiée par la macros tabs.

Exemples

Voici quelques exemples d'utilisation de la macro tabs. Notez que l'édition française de la documentation utilise le champ caption pour faire apparaître le titre de l'onget en Français :

<<tabs "SampleTabOne SampleTabTwo SampleTabThree SampleTabFour" "SampleTabThree" "$:/state/tab1">>

<<tabs "[tag[sampletab]]" "SampleTabTwo" "$:/state/tab2" "tc-vertical">>

Voici le troisième de nos onglets d'exemple.

Voici le deuxième de nos onglets d'exemple.

Exercice : comment faire en sorte que cette deuxième liste soit triée ? Indice : lisez le tiddler Tagging jusqu'au bout.

tag Macro

 25 juillet 2023 à 21h12

The tag macro generates a tag pill for a specified tag. Clicking the tag pill opens a dropdown. This can be compared to the tag-pill Macro which also features other parameters.

If a list widget generates multiple tag macros for the same tag, clicking on one of them will open dropdowns on all of them. The simplest way to prevent this is to add the counter="transclusion" attribute to the list widget. See the examples below for more details.

Parameters

tag
The title of the tag, defaulting to the current tiddler

Exemples

tag Macro (Examples)

 25 juillet 2023 à 21h37

<<tag>>
<<tag Concepts>>

If a list widget generates multiple tag macros for the same tag, clicking any of them opens dropdowns on all of them, as in the example below. This is usually unwanted.

<$list filter="[tag[HelloThere]]">

* <$link/> is tagged with: <$list filter="[<currentTiddler>tags[]]"> <<tag>> </$list>

</$list>

Adding the counter="transclusion" attribute to the list widget that generates multiple identical tag macros causes each of them to be identified as a unique one. Clicking on any of them opens only a single dropdown.

<$list filter="[tag[HelloThere]]" counter="transclusion">

* <$link/> is tagged with: <$list filter="[<currentTiddler>tags[]]"> <<tag>> </$list>

</$list>

A slightly more performant option is to use the variable="transclusion" attribute in the list widget. In this case, the variable <<transclusion>> has to be used inside the list widget instead of the <<currentTiddler>> .

<$list filter="[tag[HelloThere]]" variable="transclusion">

* <$link to=<<transclusion>>/> is tagged with: <$list filter="[<transclusion>tags[]]"> <<tag>> </$list>

</$list>

tag Operator

 26 novembre 2016 à 12h29
purposefilter the input by tag
inputa selection of titles
suffixS = Depuis : 5.1.14 optional strict flag
parameterT = the title of a tag
outputthose input tiddlers that have tag T
! outputthose input tiddlers that do not have tag T

Learn more about how to use Filters

The output is sorted using the tag's list field and the tiddlers' list-before and list-after fields.

The behaviour when T is empty depends on the settings of the S optional suffix:

  • if T is missing and S is either missing or set to "loose", then the output of tag is empty, and the output of !tag is a copy of the input.
  • Depuis : 5.1.14 if T is missing and S is set to "strict", then the output of both tag and !tag is a copy of the input

Examples

tag Operator (Examples)

 24 janvier 2015 à 12h29

[tag[task]]

[tag[task]!tag[done]]

[!tag[task]]

[all[shadows]tag[$:/tags/Stylesheet]]

tag-picker Macro

 28 novembre 2016 à 19h14

The tag-picker macro generates a combination of a text box and a button that allows a tag to be selected and added.

Parameters

actions
Action widgets to be triggered when the pill is clicked. Within the text, the variable tag contains the title of the selected tag.
tagField
Depuis : 5.1.23 The field that gets updated with the selected tag. Defaults to tags.

Exemples

tag-pill Macro

 28 novembre 2016 à 19h12

The tag-pill macro generates a static tag pill showing a specified tag, but without the dropdown action provided by the tag Macro.

Parameters

tag
The title of the tag
element-tag
The element name to be used for the pill (defaults to "span")
element-attributes
Additional attributes for the pill element
actions
Action widgets to be triggered when the pill is clicked. Within the text, the macro parameter tag contains the title of the selected tag.

Exemples

Étiqueter par tag

 20 février 2022 à h24

L'étiquetage des tiddlers permet de les organiser en catégories. Par exemple, les tiddlers représentant des individus pourraient être étiquetés avec les tags ami, famille, collègue, etc. pour indiquer leur relation avec l'auteur.

Un tag est en fait un simple tiddler (ou un tiddler potentiel), qui peut lui-même avoir ses propres tags. Plusieurs tags peuvent être appliqués au même tiddler.

Voir Créer et modifier des tiddlers pour des instructions sur la façon d'étiqueter les tiddlers.

Le fait d'étiqueter les tiddlers vous procure de nombreux moyens supplémentaires de visualiser, parcourir, et organiser vos informations :

  • Les pastilles colorées pour chaque tag d'un tiddler vous donnent accès à tous les autres tiddlers portant le même tag, ainsi qu'au tiddler correspondant au tag lui-même.
  • Lorsqu'un tiddler est utilisé pour étiqueter d'autres tiddlers, l'onglet Étiquetage dans son panneau d'informations liste tous les tiddlers tagués avec le titre du tiddler courant.
  • L'onglet Plus de la barre latérale contient un onglet Tags qui permet de visualiser tous vos tags et d'accéder à vos tiddlers étiquetés.
  • Vous pouvez utiliser des filtres pour créer des listes de tiddlers selon leurs tags, puis afficher toute combinaison de champs souhaitée. Par exemple, vous pouvez créer un glossaire en listant le titre et le texte de tous les tiddlers étiquetés Glossaire. De telles listes peuvent être formatées à votre goût : avec des puces, des nombres, ou séparées par des virgules, etc.
  • Les « tags système » contrôlent la mise en forme des tiddlers et de la page TiddlyWiki dans son ensemble. Voir les instructions correspondantes dans Personnalisation poussée de la page et des tiddlers.

Encore deux choses que les tags permettent de faire :

Affecter des couleurs et des icônes à un tag

Vous pouvez utiliser le gestionnaire de tags, présent dans l'onglet Tags de l'onglet Plus de la barre latérale, pour affecter une couleur de fond et/ou une icône à un tag.

  • Les couleurs peuvent être affectées à un tag en cliquant sur le bouton de la colonne des couleurs et en sélectionnant une proposition. Sinon, spécifiez la valeur CSS de la couleur dans la zone de saisie accessible en cliquant sur le bouton .
  • Les icônes peuvent être affectées à un tag en cliquant sur le bouton dans la colonne des icônes et en choisissant une des icônes proposées.

Changer l'ordre dans lequel les tiddlers sont listés

Par défaut, les tiddlers tagués sont listés dans l'ordre alphabétique.

Si vous voulez un ordre différent, ajoutez un champ list au tiddler du tag, et affectez lui comme valeur la liste de ses tiddlers dans l'ordre choisi.

Le champ list n'a pas besoin de contenir tous les tiddlers. TiddlyWiki utilise des règles précises pour trier les tiddlers tagués.

tagging Operator

 3 février 2015 à 19h16
purposefind the tiddlers that have the input tags
inputa selection of tags
parameternone
outputthe titles of any tiddlers that carry the input tags

Learn more about how to use Filters

Each input tag is processed in turn. The list of tiddlers carrying that tag is generated, sorted, and then dominantly appended to the operator's overall output.

Examples

tagging Operator (Examples)

 24 janvier 2015 à 13h36

[[task]tagging[]]
→ same as [tag[task]]

Concepts task +[tagging[]]
→ tiddlers that are tagged Concepts or task

[all[current]tagging[]]
→ tiddlers tagged with the current one

tags Operator

 3 février 2015 à 19h16
purposeselect all tags of the input tiddlers
inputa selection of titles
parameternone
outputall the tags carried by the input tiddlers

Learn more about how to use Filters

Each input title is processed in turn. The corresponding tiddler's tags are retrieved (in order of appearance in the tags field) and then dominantly appended to the operator's output.

Examples

tags Operator (Examples)

 24 janvier 2015 à 13h42

[[Filter Operators]tags[]]

[all[shadows]tags[]]

[all[shadows+tiddlers]tags[]sort[]]

Tiddlers Tag

 22 juin 2015 à 13h22

Un tiddler tag correspond à tout tiddler utilisé comme tag.

Pour connaître quels tiddlers sont étiquetés par un tiddler tag sélectionné. Aller dans son panneau d'information et choisir Étiquetage, ou cliquez :

  1. plus,
  2. informations
  3. puis Étiquetage

Un tag peut être utilisé sans nécessairement correspondre à un tiddler tag.

tan Operator

 21 octobre 2021 à 23h28
purposecalculate the tangent value of a list of angles (given in radians)
inputa selection of titles
outputthe tangent of the input angles

Learn more about how to use Filters

Depuis : 5.1.21 See Mathematics Operators for an overview.

Examples

tan Operator (Examples)

 20 octobre 2021 à 15h22

[[2]tan[]]

=1 =2 =3 =4 +[tan[]]

task

 2 juin 2016 à 7h15

Il s'agit de tâches pour l'exemple de gestion de tâches

Exemple de gestion de tâches

 26 février 2022 à 17h42

TiddlyWiki5 peut servir de système de gestion de tâches simple sans personnalisation supplémentaires. L'idée est que les tâches soient taguées avec task, celles étant terminées portant également le tag done. De cette manière, il est très simple de générer des listes de tâches.

Il y a une version améliorée de cet exemple qui ajoute la possibilité de réordonner les tâches par glisser-déposer.

Tâches à effectuer

Tâches terminées

TaskManagementExample (Draggable)

 7 mars 2018 à 15h35

This is a version of the TaskManagementExample enhanced with the ability to drag and drop the task list to re-order them.

Outstanding tasks

Drag the tasks to re-order them

Completed tasks

(Listed in reverse order of completion)

TaskManagementExampleDraggableTemplate

 7 mars 2018 à 15h35

Style technique rédactionnel

 21 juin 2015 à 22h05

Lors de la rédaction d'un tiddler d'apprentissage, commencez par planifier la route des informations que vous souhaitez présenter. Ce doit être un cheminement simple, logique, progressif, sans retour en arrière ou référence à suivre.

Employez cette méthode, même lors d'expressions indépendantes : toujours aller de la cause à l'effet, de l'ancien ou connu vers le nouveau ou l'inconnu. Une phrase technique claire contient rarement plus d'une idée. Elle évite donc les informations entre parenthèses. De même, garder une structure de paragraphe simple. Une présentation linéaire est souvent plus facile à comprendre que si elle est hiérarchisée.

Il est souvent possible de simplifier une phrase sans changer sa signification, simplement en ajustant son vocabulaire ou sa structure grammaticale. "le processus de la macro est exécutée" signifie simplement "La macro s'exécute". "Votre attente pourrait être ..." signifie simplement "Vous pourriez attendre ...".

Préférez la voix active par défaut : "Jane créé un tiddler" plutôt que "un tiddler est créé par Jane". La voix passive peut être utile si vous voulez focaliser l'attention du lecteur sur l'action elle-même ou sur son résultat : "un tiddler est créé". Mais il est souvent plus clair d'aller de la cause à l'effet et dire en voix active, "Cela créé un tiddler".

La documentation présente souvent deux éléments en parallèle par similarité ou par différence. Le lecteur pourra plus facilement appréhender des concepts si vous employez la même structure de phrase pour chacun. Mais c'est contrebalancé par la nécessité de rompre la monotonie.

Préférez les instructions précises aux discours verbeux. Si quelque chose a un nom, l'utiliser. Si quelque chose n'a pas de nom, lui attribuer un tiddler.

Tiddlers gabarits

 24 juin 2015 à 10h28

Un tiddler gabarit n'est pas vraiment un type de tiddler, c'est un rôle dans lequel un tiddler peut être utilisé.

Les gabarits sont un moyen de réutiliser différentes portions de WikiTexte.

Transclure par un gabarit étend les fonctionnalités de base de la Transclusion en combinant deux tiddlers :

  • Un tiddler gabarit contenant le WikiTexte à afficher. Il peut contenir des transclusions se référant aux champs du tiddler en cours
  • Un tiddler cible qui indique quel tiddler sera considéré comme en cours lors des calculs de références des champs

Le meilleur exemple de modélisation est le flux principal des tiddlers ouverts de TiddlyWiki. Chaque tiddler du déroulé principal est affiché via un Gabarit d'affichage qui spécifie le rendu de chaque champ.

Voir la Transclusion par Gabarits pour plus de détails.

Dix raisons de passer à TiddlyWiki

 15 novembre 2014 à 22h34
  1. Avec TiddlyWiki, vous pouvez organiser vos notes selon vos préférences, pas selon celle des autres. Vos notes se conforment à votre façon de penser et personne ne vous impose une hiérarchie prédéfinie de carnets de notes ou d'onglets.
  2. L'approche non-linéaire de TiddlyWiki vous donnera l'occasion de penser à vos informations d'une façon effectivement nouvelle et utile.
  3. Retrouver ses notes dans TiddlyWiki est ultra-rapide.
  4. Il existe de nombreux moyens de personnaliser et d'adapter tous les aspects de TiddlyWiki.
  5. TiddlyWiki est libre et gratuit, et compatible avec toutes les plates-formes. N'importe quel navigateur web pourra l'ouvrir. Pour l'utiliser, il n'est pas nécessaire d'acquérir une application coûteuse, ni de payer un abonnement.
  6. Les fichiers TiddlyWiki facilitent le partage d'informations. Il existe une multitude de manières de partager vos informations depuis TiddlyWiki.
  7. Avec TiddlyWiki, vos informations vous appartiennent, et vous les stockez où vous voulez — sur notre appareil, sur une clé USB, dans Dropbox, sur votre serveur.
  8. TiddlyWiki propose un nombre toujours croissant de plugins, thèmes, widgets, et langages.
  9. La communauté en ligne de TiddlyWiki est bienveillante, et fera de son mieux pour vous apporter l'aide dont vous avez besoin.
  10. Si vous êtes programmeur, vous trouverez encore plus de façons de faire joujou avec TiddlyWiki. Avec TiddlyWiki, plus on en sait, plus on s'amuse.

Testimonials - Joe Armstrong

 

The TiddlyWiki is the best software I've ever found for organising my ideas.

It's well worth spending an hour or so playing with it to see how it can help you. This will be time well-spent and will change how you think and how you organise your ideas.

Testimonials - Network World

 

TiddlyWiki gets a Gearhead rating of 6 out of 5 (it's that good).

Finding code that works flawlessly after just two or three years is magical enough but after seven years?!

Testimonials - Product Hunt

 

Text preview

 29 octobre 2021 à 10h01

Pressing the eye icon will open or close a preview window showing the results of rendering the WikiText (the icon-eye will also open or close).

Right to the eye there is another icon, , which when clicked, shows you a dropdown which gives you access to six different types of preview:

  • output shows you the text as you see it when you do not edit the tiddler.
  • html shows you the source code of that output. Your web browser uses this source code to display webpages.
  • parsetree and widgettree show you the two object trees that TiddlyWiki internally generates from WikiText. The parsetree collects basic information about your WikiText. From the informations of the parsetree the widgettree then generates extended informations and finally the above html (and the widgettree also does other things).
  • differences from current shows you the differences since the tiddler was last saved. Deleted parts are red, added parts are green.
  • differences from shadow (if any) does the same, but this time it shows you the differences to the underlying shadow-tiddler.

By default, the preview pane button controls whether the preview pane is displayed for all tiddlers that are open for editing. There is a hidden setting to make the button work on a per-tiddler basis

The variable tv-tiddler-preview can be used to detect whether content is being displayed in the preview pane.

Text-Slicer Edition

 2 juin 2016 à 6h15

The Text-Slicer edition of TiddlyWiki contains tools to help advanced users slice long texts up into individual tiddlers.

https://tiddlywiki.com/editions/text-slicer/

Référence texte

 24 juin 2015 à 10h30

Une RéférenceTexte identifie le bloc de texte d'un tiddler qui peut être récupéré ou modifié selon le contexte.

Les références texte sont composées de multiple parties, dont plusieurs peuvent être optionnelles :

  • tiddlerTitle - Le champ texte d'un tiddler spécifié
  • tiddlerTitle!!field - un champ de tiddler (eg, modified, modifier, type etc)
  • !!field - un champ du tiddler en cours
  • tiddlerTitle##propertyIndex - extrait la propriété nommée d'un Tiddler Data

Les références texte peuvent être utilisées à plusieurs endroits :

TextWidget

 15 janvier 2019 à h00

Introduction

The text widget displays plain text without parsing it as WikiText, opposite of WikifyWidget.

Content and Attributes

The content of the <$text> widget is not used.

AttributeDescription
textThe text to display

Example

<$vars string="//italic//">

* <<string>>
* <$text text=<<string>>/>

</$vars>

Affichera ceci :

  • italic
  • //italic//


The text-test field of this tiddler has a field value: <$text text={{!!text-test}}/>

It displays in its normal WikiText format as: {{!!text-test}}

Affichera ceci :

The text-test field of this tiddler has a field value: e=mc^^2^^

It displays in its normal WikiText format as: e=mc2

The Extended Listops Filters

 1 mars 2023 à 17h28

La première règle d'utilisation de TiddlyWiki

 16 novembre 2014 à 11h48

Histoires épouvantables

Il arrive régulièrement que des utilisateurs de TiddlyWiki nous rapportent des histoires à tordre le cœur concernant des pertes de données personnelles dans les groupes de discussion :

Tout mon TiddlyWiki s'est volatilisé lorsque Firefox a crashé pendant l'enregistrement d'un tiddler.

https://groups.google.com/d/topic/tiddlywiki/oG2L7OXhUoI/discussion

La dernière fois que je l'ai utilisé, c'était hier soir à la maison sur mon ordinateur Windows 7 ; j'ai cliqué sur la coche de validation pour terminer d'éditer ma dernière note, ce qui a déclenché l'enregistrement via TiddlyFox, et j'ai éjecté ma clé USB. Je suis arrivé au bureau ce matin, j'ai branché ma clé USB, entré mon mot de passe TW5, mais il n'a pas voulu s'ouvrir après plusieurs tentatives. J'ai exploré mes répertoires à la recherche de mon fichier html TW5 et j'ai remarqué qu'il ne pesait plus 3Mo, mais 80Ko. Ce qui me conduit à penser que j'ai tout perdu.

https://groups.google.com/d/topic/tiddlywiki/SXStDJ0ntGI/discussion

Arrangez-vous pour que cela ne vous arrive jamais !

La première règle d'utilisation de TiddlyWiki est

Sauvegardez vos données !

TiddlyWiki est un système très souple et personnalisable, qui vous rend responsable de vos données. Un grand soin est porté lors du développement de TiddlyWiki à s'assurer que c'est un lieu sûr pour préserver vos données les plus précieuses, mais au bout du compte, c'est aux utilisateurs que revient la responsabilité de limiter les risques d'une perte de données.

La meilleure façon de s'assurer que vos données sont en sécurité est de mettre en œuvre une procédure de sauvegarde rigoureuse :

  • Pensez à utiliser des services du type Dropbox pour sauvegarder continuellement vos données personnelles sur le cloud. (Dropbox dispose d'une fonctionnalité intéressante grâce à laquelle vous pouvez garder la trace des versions précédentes de vos fichiers)
  • Faites des sauvegardes avant de passer à une nouvelle version de TiddlyWiki
  • Protégez-vous des pires scénarios imaginables : que ce passerait-il si votre clé USB ou votre disque dur tombe en panne. Et si votre ordinateur est attaqué par un virus de la pire espèce ?
  • Soyez sur vos gardes et pratiquez la redondance : par exemple, ayez plusieurs exemplaires de vos sauvegardes, et conservez-les dans des endroits physiquement séparés.

Then Filter Run Prefix

 6 mai 2023 à 18h29

Depuis : 5.3.0

purposereplace any input to this filter run with its output, only evaluating the run when there is any input
inputall tiddler titles
outputthe output of this filter run replaces the output of previous runs unless it is an empty list (see below)

:thenrun

Introduction

The :then filter run prefix is used to replace the result of all previous filter runs with its output.

If the result of all previous runs is an empty list, the :then prefixed filter run is not evaluated.

If the output of a :then prefixed filter run is itself an empty list, the result of all previous filter runs is passed through unaltered.

Note that a list with a single empty string item is not an empty list.

:then run prefix versus the then operator

The major difference between the then operator and a :then prefixed filter run is that the operator will replace each item of the input Title List with its parameter while :then will replace the whole input list with the result of its run.

:then Filter Run Prefixthen Operator
[tag[WikiText]] :then[[true]]
[tag[WikiText]then[true]]

To make them equivalent, additional filter steps may be added:

[tag[WikiText]count[]compare:number:gt[0]then[true]]

Examples

Then Filter Run Prefix (Examples)

 17 juin 2023 à 19h37

Conditional Execution

The :then filter run prefix can be used to avoid the need for nested ListWidgets or Macro Definitions in WikiText.

<$edit-text field="search" placeholder="Search title"/>

<$let searchTerm={{!!search}}>
<$list filter="[<searchTerm>minlength[3]] :then[!is[system]search:title<searchTerm>]" template="$:/core/ui/ListItemTemplate"/>
</$let>

Affichera ceci :

Conditional (Sub)Filters

The :then filter run prefix can be combined with the :else prefix to create conditional filters. In this example, the fields used in searchSubfilter for searching depend on the value of $:/temp/searchFields and the sort order used by sortSubfilter depends on the value of $:/temp/searchSort. Checkboxes are used to set the values of these tiddlers.

Note that each filter run of the subfilter receives the input of the subfilter operator as input

Since the then and else operators cannot call subfilters or perform additional filter steps, they cannot be used for such applications.

<$checkbox tiddler="$:/temp/searchSort"
      field="text"
      checked="chrono" unchecked="alpha" default="alpha">
  Sort chronologically (newest first)
</$checkbox><br/>
<$checkbox tiddler="$:/temp/searchFields"
      field="text"
      checked="title" unchecked="default" default="title">
  Search <<.field title>> only
</$checkbox><p/>
<$let searchSubfilter="[{$:/temp/searchFields}match[default]] :then[search[prefix]] :else[search:title[prefix]]"
      sortSubfilter="[{$:/temp/searchSort}match[chrono]] :then[!nsort[modified]] :else[sort[title]]"
      limit=10 >
  <$list filter="[all[tiddlers]!is[system]subfilter<searchSubfilter>subfilter<sortSubfilter>first<limit>]">
    <$link/> (<$text text={{{ [{!!modified}format:date[YYYY-0MM-0DD]] }}} />)<br/>
  </$list>
  <$list filter="[all[tiddlers]!is[system]subfilter<searchSubfilter>rest<limit>count[]]">
    ... and <<currentTiddler>> more.
  </$list>
</$let>

Affichera ceci :


addprefix Operator (2015-02-03)
addprefix Operator (Examples) (2015-01-18)
Cascade Filter Run Prefix (2021-11-30)
Cascade Filter Run Prefix (Examples) (2021-12-04)
Filter Filter Run Prefix (2021-11-29)
Filter Filter Run Prefix (Examples) (2021-12-04)
Filter Run Prefix (Examples) (2021-11-29)
Intersection Filter Run Prefix (2021-11-28)
Intersection Filter Run Prefix (Examples) (2021-11-28)
Map Filter Run Prefix (2022-07-20)
... and 14 more.

then Operator

 1 mai 2023 à 18h43
purposereplace input titles by a constant string
inputa selection of titles
parameterT = a string
outputthe input titles with each one replaced by the string T

Learn more about how to use Filters

Depuis : 5.1.20 See Conditional Operators for an overview.

The Then Filter Run Prefix has a similar purpose to the then operator. See its documentation for a comparison of usage.

Examples

then Operator (Examples)

 2 août 2019 à 12h35

[[HelloThereMissing]is[missing]then[yes]]

[[HelloThere]is[missing]then[yes]]

Troisième

 20 juin 2015 à 18h24

C'est un exemple de tiddler. Voir Macros Table des matières (Exemples).

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

ThirdOne

 14 novembre 2021 à 1h36

C'est un exemple de tiddler. Voir Macros Table des matières (Exemples).

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

ThirdThree

 14 novembre 2021 à 1h36

C'est un exemple de tiddler. Voir Macros Table des matières (Exemples).

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

ThirdTwo

 14 novembre 2021 à 1h36

C'est un exemple de tiddler. Voir Macros Table des matières (Exemples).

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

thisTiddler Variable

 5 mai 2023 à 21h01

Depuis : 5.3.0 The thisTiddler variable is set by the $transclude widget to contain the title of the tiddler that was transcluded. This means that within transclusions thisTiddler will contain the title of the transcluded tiddler. It is not affected by macros, which means that within a macro thisTiddler will contain the title of the tiddler from which the macro was invoked. Intermediate, nested macro calls are ignored.

There are two key usages for thisTiddler:

  • Within a transcluded template, thisTiddler points to the template itself, making it possible for the template to access data stored in other fields of the template
  • Within a macro, thisTiddler points to the template that invoked the macro. If the macro was invoked by another macro, the template that invoked that macro is returned, and so on

Compare storyTiddler and currentTiddler.

Exemples

thisTiddler Variable (Examples)

 4 mars 2023 à 12h41

The first example shows how thisTiddler works whithin transcluded template. Here the SampleTemplate is a template for demonstration.

{{||SampleTemplate}}

The second example shows thisTiddler in the body of tiddler and inside a macro.

<$text text=<<thisTiddler>>/>

\define example() <$text text=<<thisTiddler>>/>
<<example>>

thumbnail Macro

 25 mars 2015 à 17h23

The thumbnail macros are used to create linkable thumbnail panels.

Parameters

(none)

Exemples

thumbnail Macro (Examples)

 25 mars 2015 à 17h21

Examples

Here is an example of the thumbnail-right macro used to create a video thumbnail that floats to the right of the text

<<thumbnail-right link:"Introduction Video" image:"Introduction Video Thumbnail.jpg" caption:"Introduction to ~TiddlyWiki" icon:"{{$:/core/images/video}}" color:"red">>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Thursday

 16 novembre 2021 à 22h11

This example tiddler is used to illustrate some of the Filter Operators.

before and after

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]before{!!title}]

[list[Days of the Week]after{!!title}]

Tiddler Colour Cascade

 6 décembre 2021 à 16h53

The tiddler colour cascade is a cascade used to choose which colour should be used for a particular tiddler.

Core tiddler colour cascades can be found in $:/core/macros/tag, $:/core/ui/Components/tag-link, $:/core/ui/EditTemplate/tags, $:/core/ui/TagPickerTagTemplate, $:/core/ui/TagTemplate and $:/core/ui/ViewTemplate/title

The default tiddler colour cascade consists of:

  1. If the tiddler has a color field, use the value as the colour
  2. If the tiddler $:/config/DefaultTiddlerColour exists, use the value as the colour

You can see the current settings for the tiddler colour cascade in $:/ControlPanel under the Info -> Advanced -> Cascades -> Tiddler Colour tab.

Tiddler Commander by Mohammad

 16 novembre 2020 à 20h46

Tiddler Commander plugin, in short Commander is a unique tool for batch operations on tiddlers.

https://kookma.github.io/TW-Commander/

Commander has many features including:

  • Bulk tiddler creation/deletion
  • Selective operation
  • Combo search to filter and select tiddlers
  • Title operation: add, remove prefixes and suffixes, also remove cahras form begining and end of title (on renaming tiddlers, relink can be used to update title in other tiddlers)
  • Tag operation: add, remove, replace
  • Field operation: add, remove, rename, and set field value
  • SnR, search and replace in all fields including text, tags, title, and common fields
  • Inspect, to review and inspect tiddlers in one place, scroll among them and edit all fields (including common fields), tags, text (title is an exception!)
  • Log, create logs of all operations
  • Search, save and load any combination of filter search

Tiddler Fishes.svg

 

Tiddler Icon Cascade

 6 décembre 2021 à 16h00

The tiddler icon cascade is a cascade used to choose which icon should be used for a particular tiddler.

The core tiddler icon cascade can be found in $:/core/ui/TiddlerIcon

The default tiddler icon cascade consists of:

  1. If the tiddler has an icon field, use the value as the title of the icon tiddler
  2. If the tiddler $:/config/DefaultTiddlerIcon exists, use the value as the title of the icon tiddler

You can see the current settings for the tiddler icon cascade in $:/ControlPanel under the Info -> Advanced -> Cascades -> Tiddler Icon tab.

Tiddler Poster.png

 

Structure d'un tiddler

 24 juin 2015 à 10h44

Suivant la Philosophie des tiddlers, la documentation des tiddlers est typiquement courte et interconnectée.

Quand un tiddler semble nécessiter des subdivisions, c'est souvent le signe qu'il devrait être fractionné en plusieurs tiddlers. Mais il est raisonnable pour un tiddler de référence de se décomposer en une section d'introduction non titrée, suivie d'une section titrée pour les détails.

La cohérence de la terminologie est essentielle pour éviter la confusion du lecteur. La cohérence de la typographie et de la ponctuation offrent une qualité professionnelle à la documentation. Les macros peuvent participer à l'amélioration de la cohérence du texte et de sa maintenabilité .

Utilisez les listes numérotées pour les instructions pas-à-pas, et les puces pour les listes dont l'ordre est arbitraire. Utilisez une liste de définitions de préférence à une liste à puces si chaque élément de la liste débute par un terme suivi d'une virgule. Autant que possible, évitez de surcharger le lecteur avec une liste hiérarchisée.

Utilisez une table lorsque l'information se divise naturellement en trois colonnes ou plus, ainsi que pour les listes de paramètres, d'attributs, etc., au sein des tiddlers de référence.

La documentation reflète la réalité actuelle de TiddlyWiki. Elle évite les discussions sur ses aspirations.

Règles de rédaction des titres des tiddlers

 21 juin 2015 à 23h39

Plusieurs tiddlers documentaires, particulièrement les référents, sont concernés par un seul concept. Leurs titres doivent correspondre à un groupe nominal succinct comme List Widget ou Champs de Tiddler.

Chacun des mots principaux d'un tel titre commence avec une majuscule. Les mots mineurs comme "et", "ou", "le", "de" and "avec" n'en ont pas.

Les Tags suivent aussi ce modèle.

Les titres de ce genre sont au pluriel s'ils représentent une catégorie d'articles, comme. Raccourcis Clavier ou Champs de Tiddler. Cette forme est utilisée pour étiqueter des tiddlers plus spécifiques dans une catégorie.

Quand un concept est un article plus qu'une catégorie, son tiddler a titre particulier, comme : List Widget, tag Operator.

Commencer un titre avec sa partie la plus distinctive. Par exemple, les tiddlers documents, les opérateurs de filtre ont des titres comme addprefix Operateur. Cela aide le lecteur a parcourir une liste de liens pour trouver un tiddler particulier.

Éviter de commencer un titre avec un article comme "le, la, les" ou "un, une, des".

Par le passé, plusieurs tiddlers avaient des titres CamelCase. C'est progressivement abandonné pour accroître la lisibilité. Les titres CamelCase ne seront plus employés, même pour les tags, exceptés pour les cas comme JavaScript où il existe une orthographe standard.

Les tiddlers d'apprentissage ont souvent des titres long un peu plus élaborés qu'un simple groupe nominal, comme : Dix raisons de passer à TiddlyWiki. Ces titres suivent la règle de la phrase, où seul le premier mot (ainsi que tous noms propres) commence par une majuscule.

Les tiddlers Comment ? ont des titres qui débutent par "Comment ?", de type : Comment éditer un tiddler. Éviter les titres comme :Tiddlers Edition, car un locuteur moyen pourrait ne pas l'interpréter comme le nom d'une catégorie de tiddlers.

Champs de tiddler

 24 juin 2015 à 10h29

Les champs de tiddlers sont les couples nom:valeur qui constituent un tiddler. Les noms de champ peuvent être composés de lettres minuscules non accentuées, chiffres, ou caractères - (tiret), _ (souligné) et . (point).

Les champs standard sont :

Nom du champRéférenceDescription
titleTitleFieldNom unique du tiddler
textTextFieldTexte du corps de ce tiddler
modifiedModifiedFieldDate et heure à laquelle le tiddler a été modifié pour la dernière fois
modifierModifierFieldTitre du tiddler associé à l'utilisateur qui a modifié ce tiddler pour la dernière fois
createdCreatedFieldDate de création du tiddler
creatorCreatorFieldNom de l'utilisateur qui a créé le tiddler
tagsTagsFieldListe des tags associés à un tiddler
typeTypeFieldType de contenu du tiddler
listListFieldListe ordonnée de titres de tiddlers associée à un tiddler

Les autres champs utilisés par le noyau sont :

Nom du champRéférenceDescription
colorColorFieldCouleur CSS associée au tiddler
descriptionDescriptionFieldTexte de description d'un plugin, ou d'une boîte de dialogue
draft.ofDraftOfFieldPour les tiddlers en cours d'édition, contient le titre du tiddler initial
draft.titleDraftTitleFieldPour les tiddlers en cours d'édition, contient le nouveau titre prévu pour le tiddler
footerFooterFieldTexte de bas de page dans le cas d'une fenêtre modale
libraryLibraryFieldSi la valeur est yes, indique qu'un tiddler doit être sauvegardé comme bibliothèque JavaScript
nameNameFieldDans le cas d'un tiddler plugin, le nom associé à ce plugin
plugin-priorityPluginPriorityFieldDans le cas d'un tiddler plugin, un nombre indiquant sa priorité
plugin-typePluginTypeFieldDans le cas d'un tiddler plugin, le type du plugin
sourceSourceFieldURL source associée à ce tiddler
subtitleSubtitleFieldTexte du sous-titre pour une fenêtre modale

Le TiddlyWebAdaptor utilise quelques champs supplémentaires :

Nom du champRéférenceDescription
bagBagFieldNom du bag d'où provient le tiddler
revisionRevisionFieldNuméro de révision du tiddler présent sur le serveur

Voir l'onglet Avancé > Champs du panneau de contrôle pour des détails sur les champs utilisés dans ce wiki.

TiddlerFiles

 19 octobre 2014 à 11h14

Les tiddlers peuvent être conservés dans des fichiers texte dans plusieurs formats différents. Les fichiers contenant un seul tiddler peuvent aussi avoir un fichier .meta auxiliaire formaté comme une suite de paires nom:valeur :

title: LeTitre

Fichiers .tid à la TiddlyWeb

Ces fichiers consistent en une séquence de paires nom:valeur, suivie d'une ligne blanche, puis du texte du tiddler. Par exemple :

title: MonTiddler

Voici le texte de mon tiddler.

Notez que de nombreux éditeurs de texte imposent que les fichiers se terminent par un caractère de « nouvelle ligne ». Si vous voulez éviter qu'une ligne soit ajoutée à la fin de votre texte, vous pouvez utiliser cette autre syntaxe :

title: MonTiddler
text: Voici le texte de mon tiddler.

Le ContentType application/x-tiddler est utilisé en interne pour ces fichiers

Fichiers <DIV> avec l'extension .tiddler

Les fichiers *.tiddler modernes ressemblent à ça :

<div title="AnotherExampleStyleSheet" modifier="blaine" created="201102111106" modified="201102111310" tags="examples" creator="psd">
<pre>Notez qu'il y a une balise <pre> embarquée, et que les retours à la ligne ne sont pas échappés.

Et bizarrement, aucun codage HTML dans le corps du tiddler.</pre>
</div>

Ces fichiers *.tiddler ne sont donc pas vraiment similaires aux tiddlers trouvés à l'intérieur d'un fichier HTML TiddlyWiki, dans lequel le corps du texte est encodé en HTML comme attendu.

Les anciens fichiers *.tiddler étaient plus proches du format de stockage utilisé par TiddlyWiki à l'époque :

<div tiddler="AnotherExampleStyleSheet" modifier="JeremyRuston" modified="200508181432" created="200508181432" tags="examples">Voici un fichier tiddler à l'ancienne, sans balise &lt;pre&gt; embarquée. \nVoyez comme le corps du tiddler est &quot;codé en HTML&quot; et les sauts de ligne échappés par \\n</div>

Le ContentType application/x-tiddler-html-div est utilisé en interne pour ces fichiers

Fichiers JSON de type TiddlyWeb

Ces fichiers sont des tableaux de hachages sans fioritures contenant des champs sous la forme name:value. À présent seuls ces champs standards sont traités : title, text, created, creator, modified, modifier, type et tags.

Le ContentType application/json est utilisé en interne pour ces fichiers

Fichiers TiddlyWiki HTML

Les fichiers TiddlyWiki HTML contiennent une collection de tiddlers encodés au format <DIV>.

Pour qu'un fichier HTML soit importable comme un fichier TW non crypté, il faut au minimum qu'il contienne un <div id="storeArea"> juste avant les DIVs des tiddlers, eux-mêmes suivis immédiatement par un </div>. Par exemple :

<div id="storeArea">
<div created="20130302085406905" modified="20130302084548184" tags="Exemples" title="Un titre de tiddler">
<pre>Texte d'un tiddler encodé en HTML
</pre>
</div>
<div created="20140315085406905" modified="20140321084548184" tags="Un Deux [[Trois avec espace]]" title="Un autre titre" champperso="valeur du champ">
<pre>Texte de ce tiddler
</pre>
</div>

Liens dans un Tiddler

 19 février 2022 à 17h08

Les liens sont des éléments d'un tiddler où cliquer engendre la navigation vers un tiddler différent. Le comportement d'une navigation est déterminé par le StoryView (la vue) en cours : par défaut, la vue classique de TiddlyWiki montre son déroulé comme une suite linéaire de tiddlers.

Presser la touche control ou command en cliquant sur le lien d'un link ouvre le tiddler cible sans s'y déplacer. Cela peut-être un moyen pratique de dresser une suite de tiddlers à lire plus tard.

Les liens sont utiles pour modéliser des relations organiques entre tiddlers, et notamment pour décrire les chemins de navigations entre tiddlers.

Le panneau d'information liste la provenance des liens vers un tiddler dans l'onglet References.

Les filtres peuvent inclure les opérateur de filtrage suivant qui fonctionnent avec les liens :

  • [links[]] - renvoie les titres des tiddlers dont les liens proviennent de la sélection des tiddler(s) en cours
  • [backlinks[]] - renvoie les titres des tiddlers destination des liens des tiddler(s) en cours sélectionnés

TiddlyWiki5 modifie l'apparence des liens des tiddlers pour donner plus d'informations sur la cible du lien :

Description lienAffichage lien
Vers tiddler existantAinsi
Vers tiddler inexistantAinsi
Vers tiddler shadow non remplacéAinsi
Vers tiddler shadow remplacé par un tiddler ordinaireAinsi

Les liens externes sont affichés comme ceci : https://tiddlywiki.com/ ou comme ça.

Tiddlers

 22 juin 2015 à 12h09

Les tiddlers représentent l'unité d'information fondamentale dans TiddlyWiki. Plus les tiddlers sont petits mieux ils fonctionnent, car il est alors plus facile de les réutiliser en les assemblant de différentes manières.

D'autres systèmes disposent de concepts analogues nommés de façon confusément générique, du style « items », « entrées », « entités » ou « enregistrements ». TiddlyWiki considère qu'il est préférable d'être confusément distinct.

Les tiddlers sont représentés en interne par des listes de valeurs nommées appelées « champs ». Le seul champ obligatoire est le champ title, mais pour être utiles, les tiddlers comportent aussi un champ text, et tout ou partie des champs standard énumérés dans TiddlerFields.

TiddlerWidget

 1 septembre 2017 à 11h12

Introduction

The TiddlerWidget is used to set a value for the current tiddler variable, valid within the scope of the TiddlerWidget.

Content and Attributes

AttributeDescription
tiddlerThe title of the tiddler to become the new current tiddler

CSS Class Variables

The tiddler widget assigns several useful CSS classes to variables that it creates:

missingTiddlerClass
tc-tiddler-exists or...
tc-tiddler-missing depending on whether the tiddler exists
shadowTiddlerClass
tc-tiddler-shadow if the tiddler is a shadow tiddler
systemTiddlerClass
tc-tiddler-system if the tiddler is a system tiddler
tiddlerTagClasses
a space separated list of CSS classes named tc-tagged-{tagname},
e.g. tc-tagged-introduction

Note: tag names are URI encoded which means that the tag $:/tags/Macro appears as the CSS class tc-tagged-%24%3A%2Ftags%2FMacro. See How to apply custom styles by tag for more details

You can use these variables like this:

<$tiddler tiddler="MyOtherTiddler">
<div class=<<missingTiddlerClass>>>
<$transclude/>
</div>
</$tiddler>

See also $:/core/ui/ViewTemplate.

TiddlyBucket - Save to AWS or Google Storage

 26 novembre 2022 à 19h28

TiddlyBucket - Save to AWS or Google Storage using Go

This tool replicates the TiddlyWeb backend API and can read and write the tiddler files to a local directory like the canonical TiddlyWiki5 app. But, in addition, it can do the same with a given a Google Cloud Storage bucket or AWS S3 bucket. Written in the Go programming language

TiddlyChrome by Arlen Beiler

 6 janvier 2021 à 15h10

An extension application for Google Chrome that enables TiddlyWiki to save changes directly to the file system.

https://github.com/Arlen22/tiddly-chrome-app/

TiddlyClip by buggyjay

 11 mars 2022 à 18h44

BuggyJay's TiddlyClip browser extension for Firefox permits clipping of text and graphics from web pages:

http://tiddlyclip.tiddlyspot.com

TiddlyClip allows parts of webpages to be clipped into a TiddlyWiki, and consists of two parts, the browser addon and the TiddlyWiki plugin. The addon is completely memoryless, any configuration is determined by the current TiddlyWiki that the user has select to work with (we say that the addon is docked to the TiddlyWiki). TiddlyClip is designed to work (in a basic mode) without configuration. Once the addon and plugin are installed, all the user has to do is select which TW to dock to.

TiddlyDesktop

 2 avril 2022 à 11h58

TiddlyDesktop est une application pour travailler avec les fichiers TiddlyWiki (TiddlyWikiClassic et TiddlyWiki version 5). Il peut être installé sur Windows, Mac OS X or Linux. Il est compatible avec TiddlyWiki version 5 ou l'ancien TiddlyWikiClassic.

Regardez la Vidéo d'introduction à TiddlyDesktop !

  1. Installez la dernière version de TiddlyDesktop disponible sur https://github.com/TiddlyWiki/TiddlyDesktop/releases
  2. Ouvrez TiddlyDesktop
  3. Utilisez le bouton de navigation pour ouvrir des fichiers TiddlyWiki
  4. Enregistrez les modifications dans TiddlyWiki comme d'habitude

Cette courte introduction montre comment installer et utiliser TiddlyDesktop :

Source

TiddlyDesktop est basé sur le projet OpenSource NW.js. Les sources sont sur GitHub :

https://github.com/TiddlyWiki/TiddlyDesktop/

Voir les Versions de TiddlyDesktop et Personnaliser TiddlyDesktop

Versions de TiddlyDesktop

 2 avril 2022 à 11h58

La dernière version de TiddlyDesktop est disponible sur https://github.com/TiddlyWiki/TiddlyDesktop/releases/latest, et vous pouvez consulter la liste de toutes les versions.

Extension TiddlyDrive pour Google Drive par Joshua Stubbs

 2 avril 2022 à 11h58

Une extension pour Google Drive qui permet d'ouvrir et d'enregistrer directement les fichiers TiddlyWiki qui y sont stockés.

Pour plus d'informations, consultez la page GitHub du projet : https://github.com/tiddlydrive/tiddlydrive.github.io

J'ai créé une appli qui permet d'éditer les fichiers TiddlyWiki stockés sur Google Drive et de les ré-enregistrer automagiquement. La page est ici : https://chrome.google.com/webstore/detail/tiddly-drive/oaphhjhbbabdjnpjpiliepphpmnioolo mais je crois que vous devez ajouter l'appli depuis l'interface web Google Drive.

J'ai même intégré une option pour enregistrer avec le raccourci standard ctrl+s.

Traduction du message de lancement de Joshua

TiddlyFox

 17 février 2022 à 17h45

TiddlyFox est une extension pour Firefox qui permet aux fichiers TiddlyWiki autonomes d'enregistrer leurs modifications directement sur le système de fichiers. TiddlyFox fonctionne aussi bien sur les versions station de travail que mobile de Firefox. Voir Enregistrer avec TiddlyFox ou Enregistrer avec TiddlyFox pour Android pour des instructions détaillées.

TiddlyFox est maintenant obsolète car il n'est plus compatible avec les dernières versions de Firefox (voir L'apocalypse de TiddlyFox). Il existe de nombreuses alternatives à TiddlyFox, mais aucune ne fonctionne exactement de la même façon. Voir La mise en route pour plus d'informations.

TiddlyFox peut être téléchargé depuis le site Mozilla Addons :

https://addons.mozilla.org/fr/firefox/addon/tiddlyfox/

Vous pouvez également installer la dernière version de développement de TiddlyFox directement depuis GitHub :

https://github.com/TiddlyWiki/TiddlyFox/raw/master/tiddlyfox.xpi

L'apocalypse de TiddlyFox

 17 février 2022 à 17h44

Résumé

Le 14 novembre 2017 Mozilla a publié Firefox 57, une nouvelle version majeure comprenant de nombreuses améliorations et correctifs de sécurité. Toutefois, ces améliorations comportaient des changements fondamentaux du modèle de sécurité qui ont eu comme effet indésirable d'empêcher TiddlyFox de fonctionner.

TiddlyFox restera disponible pour les utilisateurs d'anciennes versions de Firefox, mais ceux qui passeront à une version plus récente devront choisir une autre façon de gérer la sauvegarde des modifications avec TiddlyWiki.

Heureusement, il existe de nouvelles façons de travailler avec TiddlyWiki et les utilisateurs ont de nombreux choix alternatifs (voir les détails dans La mise en route). La disparition de TiddlyFox a provoqué plusieurs de ces développements récents et pourrait finalement être bénéfique pour la communauté.

Ces développements font l'objet d'une discussion sur les forums TiddlyWiki.

Contexte

Firefox a été initialement publié en novembre 2004, quelques mois après la première version de TiddlyWiki. C'était très comparable au Faucon Millénium pour l'Étoile de la Mort de Microsoft (incarnée par Internet Explorer). IE écrasait depuis 5 ans le marché des navigateurs, provoquant la frustration de nombreux développeurs web face aux extensions au HTML de Microsoft qui étaient devenus des standards de facto au détriment d'une innovation qui aurait pu bénéficier à l'ensemble de la communauté web.

Firefox a vite eu du succès car il réussissait à afficher les pages web avec un rendu assez proche d'Internet Explorer tout en offrant une meilleure expérience utilisateur. Ses avantages résidaient en grande partie dans la possibilité offerte à l'utilisateur de modifier chaque aspect du navigateur. Deux innovations étaient à l'origine de cette capacité :

  • L'intégralité de l'interface utilisateur du navigateur était écrite en XUL, une extension au HTML qui lui permettait d'afficher des interface utilisateur conventionnelles (à l'époque, le HTML était limité à un simple rendu de documents structurés). Ajuster quelques lignes de code en XUL pouvait radicalement transformer l'interface du navigateur.
  • L'architecture d'extensions de Mozilla donnait les pleins pouvoirs aux extensions, leur permettant d'observer et d'interagir profondément avec le moteur du navigateur lui-même, ainsi qu'avec le système de fichiers de l'ordinateur sur lequel il s'exécutait.

Ces deux conditions permirent l'épanouissement d'un large écosystème d'extensions autour de Firefox, pour certaines extrêmement populaires. Dans de nombreux cas, les innovations apportées par des extensions furent ensuite intégrées dans le navigateur, en particulier le débogueur Firebug qui fut par la suite cloné par tous les éditeurs de navigateurs.

Firefox resta très populaire jusqu'à ce que Google rejoigne le développement du moteur rival WebKit pour développer Chome. Google choisit une approche très différente des compromis au cœur d'un navigateur, se concentrant sur l'amélioration de la sécurité au détriment de toute autre considération. Ils innovèrent avec l'isolation de chaque onglet dans un processus dédié, qui fut rapidement repris par les principaux navigateurs concurrents.

L'orientation de Google les empêcha d'adopter l'approche libertaire de Mozilla pour les extensions. Au lieu d'avoir accès à tout l'environnement du navigateur et au système, les extensions de Chrome ne voient qu'une petite partie de ce qui se passe dans le navigateur, et n'ont qu'un accès minimal aux ressources de l'hôte.

Le ralliement de Mozilla à l'approche de la sécurité des extensions de navigateurs de Google était inévitable. A ce point, Mozilla aurait été irresponsable de publier un navigateur construit sur un modèle de sécurité notoirement inférieur à celui du leader du marché.

Leçons

Une partie de la fécondité de l'écosystème autour de TiddlyWiki provient de l'adoption des deux principes de Firefox cités précédemment :

  • Construire l'interface utilisateur de l'application avec les mêmes primitives que son contenu
  • Permettre aux extensions d'accéder et interagir librement avec la logique interne de l'application.

Ces deux caractéristiques confrontent TiddlyWiki aux mêmes défis de sécurité que Firefox en son temps. Un TiddlyWiki orienté principalement vers la sécurité serait contraint de réduire ces possibilités.

Le futur

Dans le domaine des interfaces basées sur les navigateurs et des interactions utilisateur, l'innovation a maintenant quitté les extensions pour migrer vers une nouvelle génération d'environnements qui simplifient la créations de navigateurs sur-mesure basés sur des moteurs de rendu HTML libres sur étagère. Ainsi, TiddlyDesktop utilise nwjs, et Beaker Browser utilise une alternative nommée Electron.

TiddlyFox Apocalypse.png

 

Tiddlyhost

 10 avril 2023 à 11h50

Tiddlyhost.com is a hosting service for TiddlyWiki created by Simon Baird. Once you sign up and confirm your email you can create "sites", (i.e. TiddlyWikis), with support for online saving. Sites can be private or public, and you can optionally list them on the taggable and searchable Tiddlyhost Hub where they'll be discoverable by others.

Unlike TiddlySpot, Tiddlyhost is secure, open source, and has proper support for TiddlyWiki5. It also allows uploading existing TiddlyWiki files, supports TiddlyWikiClassic, and lets you claim ownership of your TiddlySpot sites. For more information see the FAQ and the About page.

Tiddlyhost Logo

 

TiddlyIE

 11 décembre 2013 à 22h42

TiddlyIE is an extension for Internet Explorer that allows standalone TiddlyWiki files to save their changes directly to the file system. TiddlyIE works with the desktop version of Internet Explorer.

See Saving with TiddlyIE.

TiddlyMap Plugin by Felix Küppers

 14 novembre 2021 à 20h50

An interactive network visualisation plugin based on Vis.js. A demo that also contains installation instructions can be found here: http://tiddlymap.org. The plugin's GitHub repository can be found here.

TiddlyMap is a TiddlyWiki plugin that allows you to link your wiki-topics (tiddlers) in order to create clickable graphs. By creating relations between your topics you can easily do the following:

  • Create concept maps and quickly manifest your ideas in tiddlers.
  • Create task-dependency graphs to organise and describe your tasks.
  • Visualise your topic structures to get an immediate grasp of topics and relations.

In general you may create, visualise and describe any network-structure you have in mind.

TiddlyMemo by oflg

 17 avril 2022 à 2h15

Lifelong knowledge, deep in the Sea of Mind.

https://tiddlymemo.org/

TiddlyMemo uses advanced Incremental Learning concepts to make it your powerful second brain for acquiring lifelong knowledge.

TiddlyServer par Arlen Beiler

 2 avril 2022 à 11h58

Une extension à la configuration du serveur Node.js de TiddlyWiki qui ajoute la prise en charge des contenus statiques et permet de travailler avec de multiples wikis simultanément.

https://github.com/Arlen22/TiddlyServer

TiddlyServer prend la commande server de TiddlyWiki sur Node.js, et l'ajoute à un serveur de fichiers statiques. Ça signifie que vous pouvez charger et héberger n'importe quel dossier de données TiddlyWiki de la même façon qu'un TiddlyWiki mono-fichier.

Mais vous n'êtes pas limité à un seul emplacement pour vos fichiers et dossiers partagés, vous pouvez les partager depuis n'importe où sur votre disque (littéralement n'importe quel chemin sur lequel NodeJS peut lancer un stat, un readdir et un readFile). Vous pouvez même les organiser en dossiers virtuels (comme les alias d'Apache et les mounts d'Express).

Évidemment, vous pouvez modifier vos fichiers, pas seulement les consulter ! Les TiddlyWiki mono-fichier utilisent l'enregistreur PUT, qui a besoin d'être patché en utilisant un bookmarlet disponible sur la page d'accueil. Les instructions correspondantes sont disponibles juste sous le titre "One thing that needs to be noted".

Et vous pouvez évidemment modifier vos TiddlyWiki multi-fichiers comme si vous exécutiez node tiddlywiki.js data --server, sauf que vous l'exécutez depuis le chemin où vous l'avez ouvert (p.ex. http://localhost/personal/notes/). Vous pouvez avoir autant de dossier de données ouverts que vous voulez, ils n'entrent pas en conflit entre eux (même si chacun consomme de la mémoire).

Les dossiers de données stockent des tiddlers individuels, pas des wikis entiers. Ils occupent moins de place car ils ne contiennent ni le noyau ni les plugins. La conséquence est qu'ils s'enregistrent beaucoup plus rapidement, surtout à travers internet. Ils s'enregistrent aussi immédiatement (en 10s environ) et enregistrent aussi les brouillons.

NDT

TiddlyWiki mono-fichier
Il s'agit d'un wiki contenu dans un seul fichier HTML, comme le fichier empty.html que vous pouvez télécharger ici. Vous utilisez le wiki en ouvrant le fichier avec un navigateur.
TiddlyWiki multi-fichiers
Lorsqu'un wiki est hébergé sur Node.js, chaque tiddler est stocké dans son propre fichier .tid et ces fichiers sont organisés dans un dossier de données. Pour utiliser le wiki il faut saisir l'URL correspondante dans le navigateur. Plus d'informations ici.

Tiddlyshow by Mohammad

 17 novembre 2020 à 16h27

Tiddlyshow is a small application of Tiddlywiki for presentation and slideshow. It can also be used as a plugin.

https://kookma.github.io/Tiddlyshow/

Tiddlyshow contains the following features

  • Tools for preparing slides
  • Shortcut keys for navigation (forward and backward)
  • Themes to colorify and customise the slideshow

TiddlySpace

 21 avril 2018 à 17h26

TiddlySpace was a public TiddlyWiki hosting service that operated from 2010 until 2016.

TiddlySpace, and the underlying TiddlyWeb, was originally sponsored by Osmosoft at BT.

TiddlyWeb

 27 janvier 2017 à 22h14

TiddlyWeb is a reference implementation for an interface to put Tiddlers on the web.

It was created by a team led by Chris Dent at Osmosoft under BT from 2008 to 2012.

http://tiddlyweb.com/

TiddlyWeb can be used to host TiddlyWiki and TiddlyWiki5 wikis, making the individual tiddlers available over a flexible HTTP API.

Other implementations of the API include:

As of early 2017, none is currently as complete as TiddlyWeb itself.

TiddlyWeb JSON tiddler format

 2 octobre 2018 à 14h11

The web server API uses tiddlers in a special format originally designed for TiddlyWeb:

  • Field values are represented as strings. Lists (like the tags and list fields) use double square brackets to quote values that contain spaces
  • Tiddlers are represented as an object containing any of a fixed set of standard fields, with custom fields being relegated to a special property called fields
  • The standard fields are: bag, created, creator, modified, modifier, permissions, recipe, revision, tags, text, title, type, uri

For example, consider the following tiddler:

{
	"title": "HelloThere",
	"tags": "FirstTag [[Second Tag]]",
	"my-custom-field": "Field value"
}

In transit over the API, the tiddler would be converted to the following format:

{
	"title": "HelloThere",
	"tags": "FirstTag [[Second Tag]]",
	"fields": {
		"my-custom-field": "Field value"		
	}
}

TiddlyWiki

 19 février 2022 à 16h28

TiddlyWiki est un outil riche et interactif, capable de manipuler des données complexes dont la structure n'est pas adaptée aux outils conventionnels comme les traitements de texte ou les feuilles de calcul.

TiddlyWiki est conçu pour s'adapter à votre cerveau, en vous aidant à gérer ce qui s'adapte mal. L'idée fondamentale est que les informations sont plus utiles et plus facilement réutilisables quand on les découpe en morceaux sémantiques aussi petits que possible – les tiddlers – en leur donnant des titres à partir desquels le wiki pourra se structurer à l'aide de liens, d'étiquettes, de listes et de macros. Les tiddlers utilisent une notation WikiTexte qui permet de représenter de façon concise une grande panoplie de fonctions hypertexte et de formatage. Le but de TiddlyWiki est de fournir une interface de travail fluide, à même de faciliter l'agrégation des tiddlers et leur recomposition en textes plus long.

Les gens adorent utiliser TiddlyWiki. Comme on peut l'utiliser en l'absence d'infrastructure de serveurs compliquée, et qu'il est open source, il a apporté une liberté inédite à ceux qui veulent garder le contrôle de leurs précieuses informations.

TiddlyWiki a été créé initialement par JeremyRuston et est maintenant devenu un projet open source qui s'épanouit grâce à une communauté active de développeurs indépendants.

TiddlyWiki Camp Paris

 12 juin 2015 à 11h01

The first TiddlyWiki Camp Paris was held on Saturday 6th June 2015.

http://paris.twcamp.info

Bienvenue sur le site du TiddlyWiki Camp. Un évènement pour rencontrer la communauté de ce logiciel Open Source, libre et gratuit. Découvrez ce bloc note personnel polyvalent et adoptez-le pour gérer votre quotidien !

TiddlyWiki Classic.png

 

TiddlyWiki Cloud

 2 avril 2022 à 11h58

Initialement conçu par Jeremy Ruston et depuis maintenu par Arlen Beiler, TiddlyWiki Cloud (précédemment appelé TiddlyWiki in the Sky for Dropbox) est un service en ligne qui vous permet d'éditer vos documents TiddlyWiki directement dans votre Dropbox en utilisant juste un navigateur.

Il fonctionne avec TiddlyWiki 5. En ce qui concerne TiddlyWiki Classic, le chargeur actuel ne fonctionne pas, mais un chargeur ultérieur pourrait fonctionner.

https://twcloud.github.io/

TiddlyWiki European Meetup 2016

 12 juillet 2016 à 13h15

https://tiddlywiki.com/tiddlywiki-eu-meetup-2016/

Here's the stream of day 1:

Here's day 2:

TiddlyWiki European Meetup 2017

 26 avril 2017 à 22h03

The TiddlyWiki European Meetup 2017, Oxford, on June 10th and 11th 2017.

For more details:

https://tiddlywiki.com/tiddlywiki-eu-meetup-2017/

TiddlyWiki extensions for Sublime Text 3 by roma0104

 6 janvier 2021 à 15h10

TiddlyWiki extensions for ViM

 6 janvier 2021 à 15h10

Les Vidéo-conférences TiddlyWiki

 20 juin 2015 à 10h25

La communauté TiddlyWiki tient régulièrement salon sur Google Hangouts, en général tous les mardi de 17h à 19h (heure de Paris). Ces rencontres sont annoncées sur le group Google de TiddlyWiki et sur le compte Twitter de TiddlyWiki.

Les échanges précédents sont archivés sur cette playlist YouTube :

TiddlyWiki in the Sky pour TiddlyWeb

 24 juin 2015 à 10h47

TiddlyWiki in the Sky pour TiddlyWeb permet la synchronisation du contenu entre le TiddlyWiki s'exécutant dans un navigateur et un serveur TiddlyWeb (ou TiddlySpace).

Les fonctionnalités incluent :

  • Le chargement différé
  • Deux modes de synchronisation entre le navigateur et le serveur
    • Une synchronisation du serveur par polling (actuellement toutes les 60 secondes)
  • Des goulots d'étranglement qui évitent de submerger le serveur avec l'évolution rapide des tiddlers

Pour expérimenter TiddlyWiki in the Sky pour TiddlyWeb :

  1. Si besoin, créer un compte sur http://tiddlyspace.com/
  2. Créez un nouvel espace, ex : <myspace>
  3. Inclure un espace tw5tiddlyweb
  4. Rendez-vous à http://<myspace>.tiddlyspace.com/tw5

TiddlyWiki Marketplace

 4 décembre 2022 à 16h56

Welcome to the TiddlyWiki Marketplace. This new forum is designed to provide a space for individuals and organizations to offer commercial products and services that are built around TiddlyWiki:

  • Paid hosting services
  • Custom solution development
  • Training courses
  • One-to-one training sessions
  • "Fix my wiki" debugging sessions

TiddlyWiki Marketplace

TiddlyWiki Marketplace Banner

 

TiddlyWiki Newsletter

 

Subscribe to the TiddlyWiki Newsletter here:

TiddlyWiki Newsletter Badge.png

 

Vidéo de TiddlyWiki sur Firefox pour Android

 15 novembre 2014 à 22h52

Ce court screencast montre comment configurer Firefox pour Android afin de pouvoir sauvegarder les modification de TiddlyWiki :

TiddlyWiki sur Node.js

 17 avril 2022 à 15h38

Exécuter TiddlyWiki avec Node.js comporte plusieurs avantages par rapport à la version s'exécutant dans un seul fichier :

  • Vous pouvez éditer le contenu du wiki dans n'importe quel navigateur compatible HTML5, y compris s'il tourne sur des smartphones ou des tablettes
  • Les tiddlers sont stockés dans des fichiers séparés, que vous pouvez organiser comme vous le souhaitez
  • Vous avez la possibilité de construire plusieurs wikis différents à partir de contenu partagé entre eux ou spécifique à un seul wiki.

Notez que TiddlyWiki sur Node.js ne permet pas de modifier directement les fichiers de tiddlers sur le disque en dehors de TiddlyWiki tant qu'il est en cours de fonctionnement. Toute modification ne sera prise en compte qu'après un redémarrage du serveur. La méthode recommandée pour interagir avec un wiki actif est à travers l'API HTTP ou JavaScript.

Pour plus d'informations, voir :

Versions de TiddlyWiki

 1 juin 2015 à 10h46

Voici la description des récentes mise à jour de TiddlyWiki5. Voir TiddlyWiki5 Versioning pour plus de détails sur la nomination des versions.

(Les versions Bêta et Alpha sont listées séparément).

Release 5.3.1

Released 20 août 2023 at 12:28

See GitHub for detailed change history of this release

Congratulations to vilc for their winning design for the banner for this release (here is the competition thread).

Overview of v5.3.1

This release comes only a few weeks after v5.3.0. The motivation for the release is to swiftly fix some issues that have emerged with v5.3.0. There are also some other improvements included in this release, notably the ability to access binary resources over HTTP – the demo downloads a random image or video of a dog.

Bug Fixes and Reversions of v5.3.0 Changes

  • Reverted adding the widget.destroy() method because of performance concerns (see https://github.com/Jermolene/TiddlyWiki5/pull/7468)
  • corrigé inefficiency when transcluding with the $output attribute set to text/plain that manifested itself as extremely slow export times
  • corrigé unwanted error message "Global assignment is not allowed within modules on node"

Translation improvement

Improvements to the following translations:

  • Chinese
  • Polish

Widget Improvements

Hackability Improvements

Bug Fixes

Node.js Improvements

Developer Improvements

  • corrigé overeager onload handler in Jasmine plugin
  • corrigé ordering of shadow tiddler listings to not reflect order of insertion

Acknowledgements

@Jermolene would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:

TiddlyWiki Video Tutorials by Francis Meetze

 6 janvier 2021 à 15h10

An extensive tutorial for getting started with TiddlyWiki. Recommended

https://www.youtube.com/playlist?list=PLzZCajspPU_UjFn0uy-J9URz0LP4zhxRK

This tutorial is aimed at giving you a basic foundation so that you can start using TiddlyWiki right away. Here we take a look at the technology behind Tiddlywiki, how to install it and create your first Tiddler.

tiddlywiki.files Files

 14 novembre 2021 à 10h12

Introduction

A tiddlywiki.files JSON file in a sub-folder within a TiddlyWiki folder overrides the usual logic for recursively scanning the folder for tiddler files. Instead, the tiddlywiki.files file specifies instructions for loading tiddlers from specific files and folders.

The format of the file is an object with two optional properties:

  • tiddlers - an array of objects describing external files with the ability to override or modify any of the fields read from the file
  • directories - an array of objects describing external directories, a filter determining which files within those directories should be processed, and the ability to override or modify any of the fields read from the file

Note that significant enhancements to tiddlywiki.files processing were introduced in Release 5.1.14.

Field overrides

Both the tiddlers and directories sections of tiddlywiki.files files include the ability to override or customise the values of fields with a fields object.

Each field can be specified as either a string or array value to be assigned directly to the field, or Depuis : 5.1.14 an object describing how to generate the value for the field. The object contains the following properties:

  • source - (optional) a string specifying the source value for the field. If not specified, the existing value is used
    • filename the filename of the file containing the tiddler
    • filename-uri-decoded the filename of the file containing the tiddler, with URI decoding applied
    • basename the filename of the file containing the tiddler without any extension
    • basename-uri-decoded the filename of the file containing the tiddler without any extension, with URI decoding applied
    • extname the extension of the filename of the file containing the tiddler
    • created the creation date/time of the file containing the tiddler
    • modified the modification date/time of the file containing the tiddler
    • Depuis : 5.3.0 filepath the path of the file containing the tiddler, relative to the path property of the directory (only usable in directories declarations)
    • Depuis : 5.3.0 subdirectories an array of the subdirectories in the file's path relative, to the path property of the directory (only usable in directories declarations)
  • prefix - (optional) a string to be prepended to the value of the field
  • suffix - (optional) a string to be appended to the value of the field

Tiddlers section

The file specifications in the tiddlers array support the following properties:

  • file: (required) the absolute or relative path to the file containing the tiddler data (relative paths are interpreted relative to the path of the tiddlywiki.files file)
  • isTiddlerFile: (optional) if true, the file will be treated as a tiddler file and deserialised to extract the tiddlers. Otherwise, the raw content of the file is assigned to the text field without any parsing
  • fields: (optional) an object containing values that override or customise the fields provided in the tiddler file (see above)
  • prefix & suffix: (optional) strings to be prefixed and suffixed to the tiddler text field
    Note that providing a prefix here is equivalent to setting the text field of the fields object to {"prefix":"<prefixvalue>"}.

Directories section

Directory specifications in the directories array may take the following forms:

  • a string literal, specifying the absolute or relative path to the directory containing the tiddler files (relative paths are interpreted relative to the path of the tiddlywiki.files file). The directory is recursively searched for tiddler files
  • Depuis : 5.1.14 an object with the following properties:
    • path - (required) the absolute or relative path to the directory containing the tiddler files (relative paths are interpreted relative to the path of the tiddlywiki.files file). Note that by default the directory is not recursively searched; sub-directories are ignored unless the searchSubdirectories flag is set to true (see below).
    • filesRegExp - (optional) a regular expression that matches the filenames of the files that should be processed within the directory
    • isTiddlerFile - (required) if true, the file will be treated as a tiddler file and deserialised to extract the tiddlers. Otherwise, the raw content of the file is assigned to the text field without any parsing
    • isEditableFile - Depuis : 5.1.23 (optional) if true, changes to the tiddler be saved back to the original file. The tiddler will be saved back to the original filepath as long as it does not generate a result from the $:/config/FileSystemPath filters, which will override the final filepath generated if a result is returned from a filter.
    • searchSubdirectories - Depuis : 5.1.23 (optional) if true, all subdirectories of the path are searched recursively for files that match the (optional) filesRegExp. If no filesRegExp is provided, all files in all subdirectories of the path are loaded. Tiddler titles generated via the source attribute filename (see above) will only include the filename, not any of the subdirectories of the path. If this results in multiple files with loaded with the same tiddler title, then only the last file loaded under that tiddler title will be in memory. In order to prevent this, you can use the filepath attribute instead of filename. Alternately, you can include multiple directory objects and customise the title field with a prefix or suffix alongside the source attribute.
    • fields - (required) an object containing values that override or customise the fields provided in the tiddler file (see above)

Fields can also be overridden for particular files by creating a file with the same name plus the suffix .meta – see TiddlerFiles.

Examples

These example tiddlywiki.files must be placed in their own sub-directory of the wiki folder.

There are also several examples of tiddlywiki.files files in the main TiddlyWiki 5 GitHub repository.

Importing a folder of PDFs

This example retrieves all the files with the extension .pdf from a folder specified by a relative path. This path starts with "../../../" indicating 3 directory levels above the folder holding this config file. Each tiddler is set up for LazyLoading with the following fields:

  • title - set to the URI decoded base filename of the PDF file. URI decoding allows characters like "/" to be included in titles by URI encoding them as "%2F"
  • created - set to the creation date/time of the PDF file
  • modified - set to the modification date/time of the PDF file
  • type - set to application/pdf
  • tags - set to $:/tags/AttachedFile
  • text - set to an empty string
  • _canonical_uri - set to the string "pdfs/" concatenated with the filename
{
    "directories": [
        {
            "path": "../../../input/pdfs",
            "filesRegExp": "^.*\\.pdf$",
            "isTiddlerFile": false,
            "fields": {
                "title": {"source": "basename-uri-decoded"},
                "created": {"source": "created"},
                "modified": {"source": "modified"},
                "type": "application/pdf",
                "tags": ["$:/tags/AttachedFile"],
                "text": "",
                "_canonical_uri": {"source": "filename", "prefix": "pdfs/"}
            }
        }
    ]
}

Importing a folder of text files

This example retrieves all the files with the extension .txt from a folder specified by a relative path. This folder is within the wiki's base directory, and the current config file is in a directory within the wiki's "tiddlers/" directory. So, in this case the path starts with "../../" to traverse upwards two directory levels, and then down into the "externalnotes/" directory. Each tiddler is set up with the following fields:

  • title - set to the URI decoded base filename of the text file. URI decoding allows characters like "/" to be included in titles by URI encoding them as "%2F"
  • created - set to the creation date/time of the text file
  • modified - set to the modification date/time of the text file
  • type - set to text/plain
  • tags - set to [[note]] [[externalnote]] [[.txt]] (using array notation)
  • text - not set, thus the content of the file is loaded as the text field
{
    "directories": [
        {
            "path": "../../externalnotes",
            "filesRegExp": ".+\\.txt",
            "isTiddlerFile": false,
            "isEditableFile": true,
            "fields": {
                "title": {"source": "basename-uri-decoded"},
                "created": {"source": "created"},
                "modified": {"source": "modified"},
                "type": "text/plain",
                "tags": ["note", "externalnote", ".txt"]
            }
        }
  ]
}

This will load all text files in the ../../externalnotes/ directory into the wiki as individual tiddlers. These can be a collection of snippets in various markup-languages. Then, the type field of each of these tiddlers can be changed to match their languages For example, "text/vnd.tiddlywiki" for wikitext, or "text/markdown" for markdown files. Then, using $:/config/FileSystemPaths and $:/config/FileSystemExtentions tiddlers with the following lines we can cause any changes to these tiddlers to be saved back to the directory they started from, and also as "*.txt" files with accompanying "*.txt.meta" files. These meta files will be generated as required, and will then over-ride any fields generated from the config tiddlywiki.files file (such as the tiddler's type field) when the server is restarted.

From the examples in Customising Tiddler File Naming we see that the final [!tag[externalnote]addprefix[wiki/]] filter in the $:/config/FileSystemPaths tiddler excludes all tiddlers tagged with externalnotes (that have not matched an earlier filter). These tiddlers have their filepath retrieved from the $:/config/OriginalTiddlerPaths generated upon boot startup.

Then, the [tag[.txt]then[.txt]] filter in the $:/config/FileSystemExtensions tiddler forces all these tiddlers to be saved back to disk as *.txt and accompanying *.txt.meta files (overriding the normal tiddler-type to file-type mapping). In this case, allowing the snippets of Tiddlywiki wikitext or markdown-text to be saved back to "text" *.txt files.

Importing and auto-tagging images

This example imports all the image files in the files directory and all its subdirectories as external-image tiddlers, and tags them based on their filepath. Each tiddler is set up with the following fields:

  • title - set to the URI decoded base filename of the text file
  • created - set to the creation date/time of the text file
  • modified - set to the modification date/time of the text file
  • type - set to image/jpeg. There is currently no way to infer the correct ContentType of the image tiddler from the file, but image/jpeg tiddlers should render correctly even with png or gif images. As an alternative, you could create separate definitions for jpg, png, and gif files with the image/jpeg, image/png, and image/gif types respectively.
  • tags - generated based on the path of the image relative to the parent directory (files in this case). Eg, images in files/photos will be tagged with photos, those in files/photos/family will be tagged with both photos and family, and those in the root files directory will have no tags.
  • text - set to an empty string
  • _canonical_uri - set to the full filepath of the image relative to the wiki root
{
    "directories": [
        {
            "path": "../../files/",
            "filesRegExp": "^.*\\.(?:jpg|jpeg|png|gif)$",
            "isTiddlerFile": false,
	        "searchSubdirectories": true,
            "fields": {
                "title": {"source": "basename-uri-decoded"},
                "created": {"source": "created"},
                "modified": {"source": "modified"},
                "type": "image/jpeg",
                "tags": { "source": "subdirectories" },
                "text": "",
                "_canonical_uri": { "source": "filepath", "prefix": "files/" }
            }
        }
    ]
}

tiddlywiki.info Files

 14 novembre 2021 à 10h12

TiddlyWikiFolders are configured with a single tiddlywiki.info file in the root of the wiki folder. It should contain a JSON object comprising the following properties:

  • plugins - an array of plugin names to be included in the wiki
  • themes - an array of theme names to be included in the wiki
  • languages - an array of language names to be included in the wiki
  • includeWikis - an array of references to external wiki folders to be included in the wiki
  • build - a hashmap of named build targets, each defined by an array of command tokens (see BuildCommand)
  • config - an optional hashmap of configuration options (see below)

includeWikis

The entries in the includeWikis array can be either a string specifying the relative path to the wiki, or an object with the following fields:

  • path - relative path to wiki folder
  • read-only - set true to prevent the tiddlers in the included wiki from being modified. The modifications will be written to the directory specified in default-tiddler-location, described below

build

Note that the build targets of included wikis are merged if a target of that name isn't defined in the current tiddlywiki.info file.

config

Configuration options include:

  • default-tiddler-location - a string path to the default location for the filesystem adaptor to save new tiddlers (resolved relative to the wiki folder)
  • retain-original-tiddler-path - If true, the server will generate a tiddler $:/config/OriginalTiddlerPaths containing the original file paths of each tiddler in the wiki

Example

For example:

{
	"plugins": [
		"tiddlywiki/tiddlyweb",
		"tiddlywiki/filesystem"
	],
	"includeWikis": [
		{"path": "../tw5.com", "read-only": true}
	],
	"build": {
		"index": [
			"--rendertiddler","$:/core/save/all","index.html","text/plain"],
		"favicon": [
			"--savetiddler","$:/favicon.ico","favicon.ico",
			"--savetiddler","$:/green_favicon.ico","static/favicon.ico"]
	},
	"config": {
		"retain-original-tiddler-path": true	
	}
}

TiddlyWiki.mp3

 

TiddlyWiki2ReadMe

 

Building TiddlyWikiClassic

TiddlyWiki5 can be used to build older 2.x.x versions of TiddlyWikiClassic from their constituent components. Doing so involves these features:

  • The tiddlywiki/classictools plugin, containing a deserializer module which allows tiddlers to be loaded from TiddlyWiki 2.x.x .recipe files
  • The stripcomments format for the ViewWidget, which strips single line JavaScript comments starting //#
  • The stripTitlePrefix='yes' attribute of the FieldsWidget, which removes prefixes wrapped in curly braces from the title attribute
    • For example, {tiddler}HelloThere would be transformed to HelloThere

Usage

TiddlyWikiClassic is built from the command line by running TiddlyWiki on Node.js. A typical usage would be:

node ../../tiddlywiki.js \
	--verbose \
	--load <path_to_recipe_file> \
	--rendertiddler $:/core/templates/tiddlywiki2.template.html <path_to_write_index_file> text/plain \
	|| exit 1

TiddlyWiki5

 22 juin 2015 à 12h32

TiddlyWiki5 est une réincarnation de TiddlyWiki armée pour les 25 prochaines années. Il s'agit d'une wiki interactif complet, écrit en JavaScript et qui peut s'exécuter soit dans un navigateur web, soit en mode serveur sous Node.js.

La gestion des versions de TiddlyWiki

 3 juin 2015 à 14h03

Chaque évolution publiée de TiddlyWiki5 est identifiée par un numéro conforme au standard décrit par la Gestion sémantique de Version 2.0.0

TiddlyWiki Version du noyau

Conformément au standard :

Étant donné un numéro de version MAJOR.MINOR.PATCH. Incrémenter le :

MAJOR, quand vos modifications rendent l'API incompatible,
MINOR,  quand l'ajout des fonctionnalités respecte la compatibilité,
PATCH, lorsque vos modifications compatibles corrigent des bogues.
Pour les pré-versions et l'ajout de métadonnées, des extensions disponibles peuvent s'ajouter au numéro de version MAJOR.MINOR.PATCH.

Versions Alpha et Beta

Quand TiddlyWiki5 était en version alpha, il utilisait l'extension de pre-version "alpha", par exemple :

5.0.1-alpha

Chaque nouvelle version alpha ou bêta impactera le numéro de version PATCH. C'est une rupture par rapport au strict respect du standard car l'incrément des PATCH est supposé réservé aux modifications compatibles.

Noter que lors des versions précédant la 5.0.1-alpha, TiddlyWiki5 utilisait des n° de version formulés ainsi 5.0.0-alpha.19. Le changement fut effectué pour permettre au processus de mise à jour d'identifier l'évolution des plugins à partir de l'information donnée par le n° de version.

Versions intermédiaires

En phase de développement, quand une nouvelle version est proposée, l'extension de préversion lui est ajoutée.

Version des Plugin

Numéro de Version

TiddlyWiki5 utilise le n° de version lié aux plugins pour déterminer quel est le plus récent au moment de la phase de mise à jour ou d'import. L'extension pre-release est ignoré quand les comparaisons sont effectuées.

TiddlyWikiClassic

 5 janvier 2014 à 16h32

"TiddlyWiki Classic" refers to versions prior to 5.0, before TiddlyWiki was completely rewritten. TiddlyWiki Classic is still actively maintained at:

https://classic.tiddlywiki.com/

TiddlyWikiFiles

 3 juin 2015 à 15h59

Fichiers TiddlyWiki HTML

Les fichiers TiddlyWiki HTML contiennent une collection de tiddlers encodés au format <DIV>.

Pour qu'un fichier HTML soit importable comme un fichier TW non crypté, il faut au minimum qu'il contienne un <div id="storeArea"> juste avant les DIVs des tiddlers, eux-mêmes suivis immédiatement par un </div>. Par exemple :

<div id="storeArea">
<div created="20130302085406905" modified="20130302084548184" tags="Exemples" title="Un titre de tiddler">
<pre>Texte d'un tiddler encodé en HTML
</pre>
</div>
<div created="20140315085406905" modified="20140321084548184" tags="Un Deux [[Trois avec espace]]" title="Un autre titre" champperso="valeur du champ">
<pre>Texte de ce tiddler
</pre>
</div>

TiddlyWikiFolders

 15 novembre 2014 à 21h22

En plus des wikis contenus dans un seul fichier, TiddlyWiki on Node.js reconnaît les wikis conservés dans un dossier contenant un fichier pour chaque tiddler.

Fichiers et répertoires dans les dossiers TiddlyWiki

Les dossiers TiddlyWiki peuvent contenir les fichiers et répertoires ci-dessous :

  • tiddlywiki.info — fichier JSON contenant les métadonnées du wiki
  • \tiddlers — répertoire contenant les fichiers de tiddlers constituant le wiki
  • \plugins — répertoire contenant les dossiers de plugins à inclure dans le wiki.

Seul le fichier tiddlywiki.info est obligatoire, les dossiers tiddlers et plugins étant optionnels. Les autres fichiers et dossiers éventuellement présents à la racine d'un dossier TiddlyWiki sont ignorés.

Contenu du fichier tiddlywiki.info

Le fichier tiddlywiki.info présent dans un dossier wiki contient un objet JSON contenant les champs suivants :

  • plugins - un tableau de noms de plugins à inclure dans le wiki
  • themes - un tableau de noms de thèmes à inclure dans le wiki
  • languages - un tableau de noms de langues à inclure dans le wiki
  • includeWikis - un tableau de chemins relatifs vers des dossiers wikis externes à inclure dans le wiki
  • build - une table de hachage de noms de cibles de compilation, chacune étant définie par un tableau de jetons de commande (voir BuildCommand)
  • config - une table de hachage optionnelle d'options de configuration (voir ci-dessous)

includeWikis

Les entrées du tableau includeWikis peuvent être soit une chaîne indiquant le chemin relatif vers le wiki à inclure, soit un object contenant les champs suivants :

  • path - chemin relatif vers le répertoire du wiki
  • read-only - donner une valeur true pour éviter que les tiddlers du wiki inclus soient modifiés. Les modifications seront écrites dans le répertoire spécifié dans l'option de configuration default-tiddler-location, décrite ci-dessous.

build

Notez que les cibles de compilation des wikis à inclure sont fusionnées si aucune cible du même nom n'est définie dans le fichier tiddlywiki.info courant.

config

Les options de configuration comprennent :

  • default-tiddler-location — une chaîne de caractères indiquant le chemin vers la localisation par défaut de l'adaptateur système de fichiers utilisé pour enregistrer de nouveaux tiddlers (le chemin est résolu relativement au dossier wiki)
  • retain-original-tiddler-path — si la valeur est à true, le serveur génèrera un tiddler $:/config/OriginalTiddlerPaths contenant les chemins de fichiers d'origine de chaque tiddler dans le wiki.

Par exemple :

{
	"plugins": [
		"tiddlywiki/tiddlyweb",
		"tiddlywiki/filesystem"
	],
	"includeWikis": [
		"../tw5.com"
	],
	"build": {
		"index": [
			"--rendertiddler","$:/core/save/all","index.html","text/plain"],
		"favicon": [
			"--savetiddler","$:/favicon.ico","favicon.ico",
			"--savetiddler","$:/green_favicon.ico","static/favicon.ico"]
	},
	"config": {
		"retain-original-tiddler-path": true	
	}
}

Contenu du dossier tiddlers

Tous les fichiers de tiddler présents dans le dossier tiddlers et ses sous-dossiers sont interprétés dans le wiki au démarrage. Les éventuels sous-dossiers sont explorés récursivement.

Les sous-dossiers contenus dans le dossier tiddlers peuvent également contenir un fichier JSON nommé tiddlywiki.files qui modifiera le traitement par défaut de ce dossier. Le format de ce fichier est illustré par cet exemple tiré du plugin D3 :

{
	"tiddlers": [
		{
			"file": "d3.min.js",
			"fields": {
				"type": "application/javascript",
				"title": "$:/plugins/tiddlywiki/d3/d3.js",
				"module-type": "library"
			},
			"prefix": "var d3;if($tw.browser){\n",
			"suffix": "}\nexports.d3 = d3;\n"
		},
		{
			"file": "cloud/d3.layout.cloud.js",
			"fields": {
				"type": "application/javascript",
				"title": "$:/plugins/tiddlywiki/d3/d3.layout.cloud.js",
				"module-type": "library"
			}
		}
	]
}

Les données JSON consistent en un objet ayant une propriété tiddlers qui contient un tableau d'informations sur chaque tiddler à charger dans le wiki. Cette information est constituée de :

  • file: le chemin de fichier relatif ou absolu du fichier de tiddler à inclure
  • fields: un objet contenant des champs qui surchargent ceux éventuellement fournis dans le fichier de tiddler
  • prefix & suffix (optionnels) : chaînes de caractères à utiliser pour préfixer et suffixer le contenu texte du fichier de tiddler.

TiddlyWikiLinks

 

timeline Macro

 23 février 2017 à 3h36

The timeline macro returns a list of tiddlers in reverse chronological order of modification (or some other date field), grouped by day.

Parameters

limit
The maximum number of tiddlers to include, defaulting to 100. But if any tiddlers are included for a particular day, all of the other tiddlers for that day will also be included – even if this exceeds the limit
format
A string specifying the desired format, defaulting to DDth MMM YYYY
subfilter
An optional extra filter step, e.g. tag[MyTag]
dateField
The name of the date field to use, defaulting to modified

The tiddlers are selected by means of a filter expression, into which the subfilter and limit parameters are spliced as follows:

[!is[system]$subfilter$has[$dateField$]!sort[$dateField$]limit[$limit$]eachday[$dateField$]]

Exemples

timeline Macro (Examples)

 21 février 2015 à 22h46

<<timeline format:"DD/MM/YYYY">>
<<timeline limit:30 subfilter:"tag[Definitions]" format:"DD/MM/YYYY">>

Timelines by Mohammad

 17 novembre 2020 à 16h17

Timelines plugin is for creating vertical and horizontal timeline and sequences.

https://kookma.github.io/TW-Timelines/

The content or description and data of events are stored in individual tiddlers.

Timelines contain two timeline macros and two sequence macros. A sequence macro shows event contents in sequence not necessarily in chronological order. The order can be determined by tag or list field or other methods.

Timimi : web-extension et hôte natif par Riz

 2 avril 2022 à 11h58

Timimi est une web-extension accompagnée d'un hôte natif qui permet d'enregistrer et sauvegarder vos TiddlyWiki mono-fichier HTML n'importe-où sur votre disque. Une fois installée, vous pouvez enregistrer les fichiers TiddlyWiki sans autre formalité, comme le plugin original Tiddlyfox.

https://ibnishak.github.io/Timimi/

Depuis la version 2.1, Timimi est compatible avec ces navigateurs :

  • Chrome/Chromium
  • Firefox
  • Opera
  • Microsoft Edge (Chromium)

Il a été constaté que Timimi fonctionnait aussi sans encombre sur les navigateurs dérivés de Chrome comme Brave ou Vivaldi.

Timimi fournit aussi aux utilisateurs 4 stratégies de sauvegarde, à savoir :

  • Créer une sauvegarde tous les n enregistrements
  • Créer une sauvegarde toutes les n minutes
  • Tours de Hanoï personnalisée
  • Premier entré, premier sorti

Tinka by Andreas Hahn

 6 janvier 2021 à 15h10

The Tinka plugin provides the ability to create and modify plugins in the browser, without requiring the use of Node.js.

See https://github.com/TinkaPlugin/Tinka for the GitHub repo.

https://tinkaplugin.github.io/

This is a Control Panel extension that aims to simplify the plugin creation and editing process. After installing, you will find a new tab in your control panel that makes creating and modifying plugins a little bit easier.

Tirets

 16 novembre 2014 à 9h00

Le tiret est un signe de ponctuation. Il ne doit pas être confondu avec le trait d’union et le signe moins. Il existe trois types de tirets, en fonction de leur longueur : le tiret court, le tiret moyen et le tiret long.

Wikipedia : http://fr.wikipedia.org/wiki/Tiret
CaractèreCP1252Code HTMLNomsUsages
-Alt 45&#x002d;trait d'union-signe moins (celui du clavier)trait d'union, signe moins
&#x2010;trait d'union, tiret court, tiret quart de cadratintrait d'union
&minus;signe moinssigne moins
Alt 0150&ndash;tiret moyen, tiret demi-cadratintiret d'incise, tiret d'énumération, tiret de liste
Alt 0151&mdash;tiret long, tiret cadratintiret de dialogue

Illustration : − – + (signe moins, tiret moyen et signe plus)

Voir aussi l'Atelier typographique : http://monsu.desiderio.free.fr/atelier/tiret.html

Liste de titres

 24 juin 2015 à 10h29

Une liste de titre est une liste de texte contenant un ou plusieurs titres de tiddlers, reliés par un espace entre chacun d'eux et le suivant.

Si un de ses titres contient un espace, il devra être entouré de double crochets :

PourDémarrer [[Découvrir TiddlyWiki]] Communauté

Les listes de titres sont utilisées en des endroits variés, dont les PermaLiens et les Champs list.

Elles sont en fait la plus simple expression d'un filtre, et donc un moyen d'exprimer une sélection de titres.

title Operator

 3 février 2015 à 19h17
purposeselect a single title
inputignored
! inputa selection of titles
parameterT = a tiddler title
outputa selection containing only T
! outputthe input, but with tiddler T filtered out if it exists in the wiki

Learn more about how to use Filters

[title[An Example]] can be shortened to [[An Example]], because title is the default filter operator. Consequentially, [!title[An Example]] can be shortened to [![An Example]].

title is a constructor (except in the form !title), but field:title is a modifier.

Examples

title Operator (Examples)

 24 janvier 2015 à 14h03

[title[HelloThere]]

[[HelloThere]]

HelloThere

[title[HelloThere]] [title[Filter Operators]]

[[HelloThere]] [[Filter Operators]]

HelloThere [[Filter Operators]]

[tag[Filters]] +[!title[Filter Operators]]

[tag[Filters]] +[![Filter Operators]]

[tag[Filters]] -[[Filter Operators]]

Sélection de titre

 24 juin 2015 à 10h30

Une sélection de titre est une suite ordonnée de titres de tiddlers (ou chaines similaires), dans laquelle aucun titre n'apparait plus d'une fois.

Les sélections de titres sont importantes dans les processus de filtre.

La façon la plus simple d'en écrire une est une liste de titres.

titlecase Operator

 20 juin 2019 à 14h50
purposereturns each item in the list with each word capitalised
inputa selection of titles
outputthe input titles with each word capitalised

Learn more about how to use Filters

Depuis : 5.1.20

See also lowercase Operator, uppercase Operator, sentencecase Operator.

This operator does not change anything except the first letter of each word, so [[aBcD eFgH]] would become [[ABcD EFgH]]. If you want [[Abcd Efgh]], then use a filter like [lowercase[]titlecase[]].

Examples

titlecase Operator (Examples)

 20 juin 2019 à 15h04

[[abc def ghi jkl]titlecase[]]

[[abc deF gHi jKL]titlecase[]]

[[abc deF gHi jKL]lowercase[]titlecase[]]

[tag[HelloThere]titlecase[]]

Todolist by Mohammad

 16 novembre 2020 à 21h20

Todolist is a small pure wikitext plugin, contain all tools to work with todo list.

https://kookma.github.io/TW-Todolist/

With Todolist, easily organise and prioritise your tasks and projects so you’ll always know exactly what to work on next.

Todolist creates custom UI and lets you to add new items, set priority, done/undone items, archive, delete. Using Todolist plugin it is possible to create several todo lists in one Tiddlywiki.

toggle Operator

 18 novembre 2020 à 19h21
purposetoggle the title specified in the operand in the input
inputa list of items
parameterthe toggle operator accepts 1 or more parameters, see below for details
outputthe input list with the title specified in the parameter toggled

Learn more about how to use Filters

Depuis : 5.1.23

The toggle operator requires at least one parameter and can accept additional optional parameters. With a second optional parameter it can be used to toggle between a pair of titles:

[toggle[<title1>],[<title2>]]
  • title1 : a title to toggle in the input list. If it is already present, it is removed. Otherwise, it is added.
  • title2: (optional). When the second parameter is provided, the operator toggles between the two values in the input list. If neither is present, the first parameter takes precedence is added to the list.

With more than two parameters, the toggle behaves similar to the cycle and can be used to cycle through a list of values. Note that all operands should be unique.

While the cycle operator interprets its first parameter as a list of titles to cycle through and offers similar functionality, the toggle operator accepts an unlimited number of distinct parameters.

Examples

toggle Operator (Examples)

 18 novembre 2020 à 17h47

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]] +[toggle[Wednesday]]

To toggle a tag in a tiddler:

<$action-listops  $tiddler="target" $tags="+[toggle[done]]" />

To toggle a title in a field:

<$action-listops $tiddler="target" $field="my-field" $subfilter="+[toggle[done]]" />

To toggle between a value pair:

<$action-listops $tiddler="target" $field="my-field" $subfilter="+[toggle[todo],[done]]" />

Transcluded Attribute Values

 15 juin 2023 à 5h53

Transcluded attribute values are indicated with double curly braces around a TextReference. For example:

attr={{tiddler}}
attr={{!!field}}
attr={{tiddler!!field}}

The value of the attribute value will be the exact text retrieved from the TextReference. Any wiki syntax in that text will be left as-is.

Widget Transclude

 18 avril 2022 à 12h50

Introduction

Le Widget Transclude importe dynamiquement le contenu d'un autre tiddler.

Attributs

AttributDescription
tiddlerLe titre du tiddler à transclure (par défaut le tiddler courant)
fieldLe nom du champ du tiddler (par défaut "text" ; si présent, a priorité sur l'attribut index)
indexL'index d'une propriété d'un Tiddler Data
subtiddlerTitre optionnel d'un sous-tiddler quand le tiddler cible est un plugin (voir infra)
modeForce le mode d'analyse du texte transclus à "block" ou à "inline" (voir infra)

Le Widget Transclude traite son propre contenu comme cible par défaut si la cible de transclusion n'est pas complètement définie (ex : un tiddler ou un champ manquant)

Modes d'analyse

TiddlyWiki analyse le WikiTexte dans deux modes :

  • le mode « en ligne » (inline) reconnaît les formats de caractères, tels que l'emphase, les liens
  • le mode « bloc » (block) reconnaît tous les formats en ligne, et ajoute les formats de blocs comme les tableaux, les listes et les titres

Habituellement, le mode bloc ou en ligne est déduit automatiquement du mode dans lequel le Widget Transclude lui-même a été analysé. Il peut toutefois être ajusté avec l'attribut mode.

Par exemple, considérons un tiddler « A » avec ce contenu :

# Article un
#<$transclude tiddler="B"/>
# Article deux

Et un tiddler « B » avec ce contenu :

# Article un - a
# Article un - b

Le résultat donnera quelque chose comme :

  1. Article un
  2. # Article un - a # Article un - b
  3. Article deux

Cela peut être corrigé en modifiant le tiddler « A » :

# Article un
#<$transclude tiddler="B" mode="block"/>
# Article deux

Voir aussi ces autres exemples.

Accès aux sous-tiddlers

Le Widget Transclude permet l'accès aux tiddlers individuels inclus dans un plugin.

L'exemple suivant transclura la version initiale du tiddler noyau $:/DefaultTiddlers même s'il a été modifié :


<$transclude tiddler="$:/core" subtiddler="$:/DefaultTiddlers"/>

Affichera ceci :

GettingStarted

Transclusion

 22 juin 2015 à 12h29

La Transclusion est le procédé de référencement d'un tiddler "A" à partir d'un autre tiddler "B" de sorte que le contenu de "A" apparait être une partie de "B".

Copier / coller du contenu crée des copies multiples d'un même contenu en différents endroits. Avec la transclusion, il peut y avoir une seule copie et une instruction spéciale dans "B" qui mentionne le point à partir duquel doit être inséré le contenu du tiddler "A".

Notez que si le contenu de "A" est modifié, alors la modification apparait immédiatement dans "B". Cela rend aisé la maintenance de contenu répétitif, en permettant l'écriture d'éléments à un seul endroit, mais l'affichage en de multiple lieux.

Le concept de transclusion joue un rôle important dans la Philosophie des Tiddlers car c'est la première façon de combiner le contenu de petits articles.

En savoir plus :

Transclusion et substitution

 19 avril 2022 à 1h27

La puissance du WikiTexte vient de sa capacité à utiliser le contenu d'un tiddler dans un autre. Cette capacité prend plusieurs formes qu'on peut facilement confondre.

La principale différence réside entre la transclusion et la substitution de texte :

  • Une transclusion est remplacée dynamiquement avec l'une ou l'autre de ces valeurs :
    • un champ de tiddler
    • une variable
  • Une substitution de texte est réalisée dans le texte de la définition de la macro avant son utilisation.

Transclusion de champ de tiddler

Transclusion en WikiTexte décrit les bases de la transclusion. Par exemple :

{{MonTiddler}}

Comme décrit dans HTML dans le WikiTexte, vous pouvez aussi transclure des valeurs de champs de tiddlers dans des attributs de balises HTML et de widgets. Par exemple :

<$text text={{MonTiddler}}/>

Comme décrit dans Introduction à la rédaction d'un filtre, vous pouvez aussi transclure des valeurs de champs de tiddlers dans des opérandes de filtres. Par exemple :

{{{ [tag{TiddlerContenantMonTag}] }}}

Transclusion de variable/macro

Les définitions de variables qui comportent des paramètres ou des substitutions sont nommées des « macros ». Vous pouvez transclure la valeur d'une variable/macro grâce à la syntaxe :

<<maMacro param:"Valeur d'attribut">>

Comme décrit dans HTML dans le WikiTexte, vous pouvez aussi transclure des valeurs de variables dans des attributs de balises HTML et de widgets. Par exemple :

<$text text=<<myMacro>>/>

Comme décrit dans Introduction à la rédaction d'un filtre, vous pouvez aussi transclure des valeurs de variables dans des opérandes de filtres. Par exemple :

{{{ [tag<maMacro>] }}}

Substitution de texte

La substitution de texte a lieu quand la valeur d'une macro/variable est utilisée. Ce mécanisme est décrit dans Macros en WikiTexte.

La différence principale entre la substitution et la transclusion est que la substitution a lieu avant l'analyse du WikiTexte, ce qui signifie que vous pouvez utiliser la substitution pour construire des assemblages de WikiTexte. Au contraire, les transclusions sont traitées indépendamment et ne peuvent pas être combinées avec du texte adjacent pour construire des assemblages de WikiTexte.

Transclusion — utilisation basique

 17 mai 2016 à 8h10

Transclusion Simple

Pour inclure le contenu d'un TiddlerA dans un TiddlerB, modifier le précédent pour y inclure le texte suivant :


Voici le contenu de TiddlerA: {{TiddlerA}}

Le résultat permet au contenu du champ text (c.à.d le contenu principal) du TiddlerA de s'afficher dans le TiddlerB.

Utilisation

La notation {{TiddlerA}} est une abréviation de {{TiddlerA!!text}}, puisque le champ de transclusion par défaut est text, mais tout autre champ peut être spécifié. Par exemple, vous pouvez visualiser la dernière fois que le TiddlerA fut modifié par :


TiddlerA a été modifié le {{TiddlerA!!modified}}

En omettant le titre du tiddler, la notation de transclusion peut aussi être utilisé pour afficher le contenu d'un champ du tiddler en cours, par exemple :


Le tiddler en cours a été modifié le {{!!modified}}

Erreurs Récursives

Notez que l'utilisation de {{!!text}} ou {{}} engendre le message d'erreur (Erreur dans le widget transclude : transclusion récursive), car il n'y a aucun sens à inclure le contenu du tiddler courant dans le contenu du tiddler courant (c.à.d, en lui-même). Chaque fois que vous rencontrez ce message d'erreur, cela voudra dire que vous essayez d'inclure quelque chose en lui-même, directement ou indirectement (par exemple si le tiddler A transclut le tiddler B qui transclut le tiddler C qui, à son tour, transclut le tiddler A).

En savoir plus

Dans TiddlyWiki, les transclusions ne sont pas limitées à l'inclusion de contenu brut comme ci-dessus. Pour en apprendre plus au sujet de modes d'utilisation plus poussées, voir Transclusion par Gabarits.

Voir aussi :

Transclusion en WikiTexte

 17 avril 2022 à 23h37

Introduction

Vous pouvez insérer le contenu d'un tiddler dans un autre en utilisant les marques de Transclusion :

  • {{MonTiddler}} transclut un seul tiddler
  • {{MonTiddler||TitreDuGabarit}} affiche un tiddler via un format spécifié par un Gabarit de Tiddler
  • {{||TitreDuGabarit}} affiche le gabarit spécifié sans altérer le Tiddler en cours

Transclure les Références de Texte

Vous pouvez aussi utiliser une Référence de Texte à la place du titre d'un tiddler :

  • {{MonTiddler!!champ}} transclut un champ spécifique d'un tiddler quelconque
  • {{!!champ}} transclut le champ spécifique du tiddler courant
  • {{MonTiddler##index}} transclut une propriété indexée spécifique d'un Tiddler Data
  • {{##index}} transclut une propriété indéxée spécifique du Tiddler Data courant

Transclusion Filtrée

Une syntaxe similaire peut être mise en œuvre pour transclure une liste de tiddlers définie par un filtre :

{{{ [tag[mécanisme]] }}}
{{{ [tag[mécanisme]] ||TitreDuGabarit}}}

Widgets Générés

La syntaxe de transclusion en WikiTexte génère un TiddlerWidget enveloppé dans un Widget Transclude. Par exemple, {{MonTiddler||MonGabarit!!monChamp}} génère cette paire de widgets :

<$tiddler tiddler="MonTiddler">
<$transclude tiddler="MonGabarit" field="monChamp"/>
</$tiddler>

Voir Aussi :

transclusion Variable

 21 février 2015 à 22h56

The transclusion variable is set by the $transclude widget to a string that identifies the position of that widget within the widget tree.

TiddlyWiki's core uses it to detect recursive transclusion. It is also used to implement the qualify macro.

The string has the following syntax:

{a|b|c|d|e|}

  1. the title of the current tiddler
  2. the title of the tiddler being transcluded
  3. the name of the field being transcluded
  4. the name of the property name or index being transcluded
  5. the name of the subtiddler being transcluded from a plugin

Many of the five items are often blank.

In the sidebar, the value of transclusion is:

{|$:/core/ui/PageTemplate/sidebar|||}

When the tiddler HelloThere is displayed in the story river, transclusion is set to:

{HelloThere|HelloThere|||}

Exemples

transclusion Variable (Examples)

 28 février 2015 à 10h34

This example shows how to distinguish between the sidebar and other environments:

We are
<$list
filter="[<transclusion>prefix[{|$:/core/ui/PageTemplate/sidebar|||}]]"
emptyMessage="in the story river.">
in the sidebar.
</$list>

In the sidebar, this would show We are in the sidebar instead.

Transclusion par gabarits

 17 avril 2022 à 23h43

Introduction

Dans Transclusion, utilisation basique nous avons découvert comment inclure le contenu d'un tiddler A dans un tiddler B. Alors, supposons que le tiddler A contienne :


@@background-color:yellow;
Salut, mon titre est {{!!title}}
@@

Ceci fait afficher au tiddler A son titre sur fond jaune (voir Les styles et les classes avec WikiText pour les styles CSS). Imaginez que vous vouliez afficher le titre du tiddler B de la même façon. Mais que vous ne souhaitiez pas copier/coller les instructions de style, car vous désirez changer la couleur du fond plus tard et que vous vioulez maintenir une cohérence entre les tiddlers. Cela ressemble à un cas typique de transclusion, aussi essayons de transclure le tiddler A en tiddler B par la voie classique par {{A}}. Vous verriez alors le contenu suivant dans le tiddler B :

Salut, mon fr-titre est Transclusion par gabarits

Le stype est appliqué comme attendu, mais le titre est faux : nous voulons que {{!!title}} se réfère au tiddler B, cible, et pas au tiddler A, source.

La solution est dans l'utilisation d'un gabarit. Dans ce cas, le tiddler A, source, est appelé le Tiddler Gabarit, et est appliqué au tiddler B par l'utilisation de la notation {{||A}}. La différence est que toute Référence texte qui ne se réfère pas explicitement à un tiddler spécifique est affectée au tiddler courant, qui est, le tiddler cible. En conséquence, le tiddler B a maintenant l'aspect attendu :

Salut, mon titre est B

Utilisation

La Transclusion par gabarit est comparable à un masque : en supposant que le tiddler source contienne les références génériques (comme les trous des yeux dans un masque), celles-ci seront remplacées par les valeurs des tiddlers cible (comme les yeux d'une personne qui porte le masque).

Un gabarit peut être appliqué à tout tiddler, pas seulement au tiddler en cours, en utilisant la notation complète {{<cible>||<gabarit>}}. La <cible> par défaut est le tiddler courant (qui a été utilisé dans l'exemple supra).

Exemples

Un gabarit prédéfini pour un bel affichage des tags

Vous pouvez appliquer le gabarit système $:/core/ui/TagTemplate à un tag pour lui donner le style d'une pilule avec menu déroulant :

{{Transclusion||$:/core/ui/TagTemplate}}

a pour rendu :

Voir aussi :

Translate TiddlyWiki into your language

 1 juillet 2018 à 19h57

There is a special edition of TiddlyWiki that simplifies creating and maintaining translations:

Note that no knowledge of Node.js or GitHub is required.

You can translate TiddlyWiki on Node.js, type tiddlywiki editions/translators --listen and visit http://127.0.0.1:8080/ in your browser.

See https://tiddlywiki.com/dev for technical details of creating and maintaining translations.

TranslationMechanism

 11 septembre 2014 à 19h38

The translation mechanism of TiddlyWiki manages and switches between language plugins that provide translations of the TiddlyWiki user interface. The developer site at https://tiddlywiki.com/dev/ explains how translators can create and submit translations for TiddlyWiki.

The title of the current language plugin is read from the tiddler $:/language. If the selected plugin changes then any displayed translatable text automatically changes.

Translation plugins are bundles of tiddlers that each contain an independent translatable string. The strings are transcluded as needed.

Translatable strings are generally in the namespace $:/language/, for example:

translink Macro

 5 mai 2023 à 10h03

The translink macro returns a frame with the title and transcluded text of a chosen tiddler. The title links to the transcluded tiddler.

If the chosen tiddler is missing, an appropriate message will be shown instead of the transcluded text.

This is the default macro used when excising text and replacing it with a macro.

Parameters

title
The title of the tiddler to be transcluded
mode
The mode of the transclude widget used inside the macro, defaults to block

Exemples

translink Macro (Examples)

 5 mai 2023 à 10h29

<<translink "Philosophy of Tiddlers">>
<<translink "Philosophy of Tiddlers" inline>>
<<translink Foo>>

Trashbin by Mohammad

 17 novembre 2020 à 15h56

The concept behind Trashbin plugin is to have a simple mechanism to move deleted tiddlers to Trashbin and be able to restore them later if required.

https://kookma.github.io/TW-Trashbin/

The trash (also known as the Recycle Bin in Microsoft Windows) is a temporary storage for tiddlers that have been deleted in a Tiddlywiki by the user, but not yet permanently erased.

Typically, a trash bin is presented as a special storage, allowing the user to browse deleted (removed) tiddlers, undelete those that were deleted by mistake, or delete them permanently (either one by one, or by the "Empty Trash" function).

tree Macro

 28 juin 2017 à 17h46

The tree macro renders an expandable tree view based on a prefix and separator within tiddler titles.

Parameters

prefix
The prefix from which to generate the tree, defaults to $:/
separator
The separator between parts of the tiddler titles, defaults to /

Exemples

tree Macro (Examples)

 28 juin 2017 à 17h48

<<tree prefix:"$:/">>

<<tree prefix:"tree-macro-example-" separator:"-">>

tree-macro-example-car

 

tree-macro-example-car-boot

 

tree-macro-example-car-boot-handle

 

tree-macro-example-car-boot-lock

 

tree-macro-example-car-roof

 

tree-macro-example-car-roof-aerial

 

tree-macro-example-car-roof-rails

 

tree-macro-example-house

 

tree-macro-example-house-attic

 

tree-macro-example-house-attic-roof

 

tree-macro-example-house-attic-window

 

tree-macro-example-house-garden

 

tree-macro-example-house-garden-lawn

 

tree-macro-example-house-garden-shed

 

tree-macro-example-house-kitchen

 

tree-macro-example-house-kitchen-sink

 

tree-macro-example-house-kitchen-table

 

tree-macro-example-house-kitchen-window

 

TriggeringWidgets

 13 novembre 2021 à 16h38

Triggering widgets are a type of widget which can trigger ActionWidgets. Typically these widgets (such as the ButtonWidget) will trigger actions based on interaction from the user.

The following triggering widgets are provided:

See ActionWidgets for more information and examples of how TriggeringWidgets and ActionWidgets work together.

trim Operator

 30 novembre 2020 à 14h11
purposereturns each item in the list with whitespace, or a given character string, trimmed from the start and/or end
inputa selection of titles
suffixT = Depuis : 5.1.23 prefix to trim from the start only, suffix to trim from the end only. If omitted (default), trim from both start and end
parameterS = Depuis : 5.1.23 a string of characters
outputthe input titles with S, or whitespace if S is not specified, trimmed from the start and/or end

Learn more about how to use Filters

Depuis : 5.1.20

Depuis : 5.1.23The trim filter allows a parameter specifying a string to trim.

Examples

trim Operator (Examples)

 13 juin 2019 à 16h39

[[ a b ]trim[]addprefix[-]addsuffix[-]]

[[ abc ]] [[def ]] [[ ghi]] +[trim[]addprefix[-]addsuffix[-]]

[[ abc ]] [[def ]] [[ ghi]] +[trim:prefix[]addprefix[-]addsuffix[-]]

[[ abc ]] [[def ]] [[ ghi]] +[trim:suffix[]addprefix[-]addsuffix[-]]

abacus baobab +[trim[ab]]

abacus baobab +[trim:prefix[ab]]

abacus baobab +[trim:suffix[ab]]

TriTarget.org by Devin Weaver

 24 avril 2016 à 12h21

A personal website built with TiddlyWiki.

https://tritarget.org

TriTarget.org is a name I came up with in high school. I was big into computer programming and wanted a company name that was kinda catchy. When I made a few programs in BASIC I would brand them with TriTarget as a way to show off my company (Even though I didn't have one).

trunc Operator

 13 juin 2019 à 9h48
purposetruncates a list of numbers to their integer part, removing any fractional part
inputa selection of titles
outputtruncates each of the input numbers to their integer part, removing any fractional part

Learn more about how to use Filters

Depuis : 5.1.20 See Mathematics Operators for an overview.

The trunc operator rounds towards zero. To round away from zero, use untrunc.

Examples

trunc Operator (Examples)

 13 juin 2019 à 9h48

[[1.6]trunc[]]

[[-1.6]trunc[]]

=-1.2 =-2.4 =3.6 =4.8 =5.1 +[trunc[]]

Tuesday

 16 novembre 2021 à 22h11

This example tiddler is used to illustrate some of the Filter Operators.

Tutoriels

 14 juin 2015 à 17h01

Voici quelques pages web contenant des astuces et des tutoriels liés à TiddlyWiki :

tv-adjust-heading-level Variable

 9 juin 2018 à 12h24

The tv-adjust-heading-level variable allows the level of headings to be adjusted. It is interpreted as a positive or negative number (e.g. "2" or "-3") that is added to the heading level for display.

Note that if the resulting heading level is less than 1 then level 1 is used instead. This means that specfiying a large negative adjustment factor will reset all headings to display as level 1. Similarly, heading levels larger than 6 are clamped to the maximum HTML heading level of 6.

Exemples

tv-adjust-heading-level Variable (Examples)

 9 juin 2018 à 12h24

Tiddlers

Sample Headings 1,2,3

! This is a Level 1 Heading

This is a paragraph.

<$vars tv-adjust-heading-level="-2">

{{Sample Headings 3,4,5}}

</$vars>

!! This is a Level 2 heading

<$vars tv-adjust-heading-level="-1">

{{Sample Headings 4,5,6}}

</$vars>

Sample Headings 3,4,5

!!! This is written as a Level 3 heading

!!!! This is written as a Level 4 heading

!!!!! This is written as a Level 5 heading

Sample Headings 4,5,6

!!!! This is written as a Level 4 heading

!!!!! This is written as a Level 5 heading

!!!!!! This is written as a Level 6 heading

Example

<$transclude tiddler="Sample Headings 1,2,3" mode="block"/>

tv-auto-open-on-import Variable

 28 février 2015 à 13h04

The tv-auto-open-on-import variable controls whether the tm-import-tiddlers message causes the tiddler $:/Import (which lists the pending imports) to open in the story river.

By default, the tiddler is opened. But if this variable has the value no, it isn't.

An example of setting this variable to no can be found in the upgrade plugin within the TiddlyWiki Upgrade Wizard. People can drag their wiki files onto the wizard without triggering the normal import display.

tv-config-static Variable

 17 juin 2023 à 9h55

Depuis : 5.3.0 The tv-config-static variable is set to yes within static rendering templates, and is unset in other contexts.

It is useful for selectively hiding or showing content depending on whether a rendering is static or interactive.

tv-config-toolbar-class Variable

 28 février 2015 à 13h58

The tv-config-toolbar-class variable controls the value of the CSS class attribute on the HTML element for a toolbar button.

It can be set prior to transcluding such a button.

In most environments, it defaults to tc-btn-invisible, which removes the button's background colour and border.

Exemples

tv-config-toolbar-class Variable (Examples)

 28 février 2015 à 13h57

<$set name="tv-config-toolbar-class" value="tc-btn-invisible">
{{$:/core/ui/Buttons/new-tiddler}}
</$set>

<$set name="tv-config-toolbar-class" value="green-background">
{{$:/core/ui/Buttons/new-tiddler}}
</$set>

The green-background CSS class is declared in a stylesheet within this tiddler.

tv-config-toolbar-icons Variable

 28 février 2015 à 14h13

The tv-config-toolbar-icons variable controls whether toolbar buttons display icons.

It can be set to yes or no prior to transcluding such a button.

The standard page template sets it to the value found in $:/config/Toolbar/Icons, with the result that this becomes the default for the whole page. The user can adjust this default by using a tickbox on the Paramétrage tab of the Control Panel.

Exemples

See also tv-config-toolbar-text.

tv-config-toolbar-icons Variable (Examples)

 28 février 2015 à 14h14

<$set name="tv-config-toolbar-icons" value="no">
<$set name="tv-config-toolbar-text" value="yes">
{{$:/core/ui/Buttons/new-tiddler}}
</$set>
</$set>

<$set name="tv-config-toolbar-icons" value="yes">
{{$:/core/ui/Buttons/new-tiddler}}
</$set>

tv-config-toolbar-text Variable

 28 février 2015 à 14h14

The tv-config-toolbar-text variable controls whether toolbar buttons display text.

It can be set to yes or no prior to transcluding such a button.

The standard page template sets it to the value found in $:/config/Toolbar/Text, with the result that this becomes the default for the whole page. The user can adjust this default by using a tickbox on the Paramétrage tab of the Control Panel.

Exemples

See also tv-config-toolbar-icons.

tv-config-toolbar-text Variable (Examples)

 28 février 2015 à 14h05

<$set name="tv-config-toolbar-text" value="no">
{{$:/core/ui/Buttons/new-tiddler}}
</$set>

<$set name="tv-config-toolbar-text" value="yes">
{{$:/core/ui/Buttons/new-tiddler}}
</$set>

tv-filter-export-link Variable

 28 août 2017 à 10h57

Depuis : 5.1.15 The tv-filter-export-link variable controls the value of the href attribute on the HTML a element generated by the $link widget. If defined, it takes precedence over the tv-wikilink-template Variable.

This variable has no useful effect when TiddlyWiki is running in a browser, as the href attribute is ignored there – links between tiddlers are performed by JavaScript instead. The variable comes into play when one is using the Node.js configuration to generate a static version of a wiki.

The variable is treated as a filter that is given the target tiddler title as input. The filter is evaluated and the first result is used as the href attribute.

For example:

\define tv-filter-export-link() [encodeuricomponent[]encodeuricomponent[]addsuffix[.html]]

See also the tv-get-export-link variable, which dominates over this one.

tv-get-export-image-link Variable

 28 février 2015 à 13h09

The tv-get-export-image-link variable controls the value of the src attribute on the HTML img element generated by the $image widget when the value of its source attribute is not the title of a tiddler.

The variable should be a macro with the following parameter:

src
The value of the source attribute – equivalent to the image name specified in the shorthand syntax [img[source]]

The ability to override image URIs in this way can be useful when one is using the Node.js configuration to export a static version of a wiki.

Exemples

tv-get-export-image-link Variable (Examples)

 

This example fetches the TiddlyWiki icon:

\define tv-get-export-image-link(src) https://www.tiddlywiki.com/$src$
[img[favicon.ico]]

tv-get-export-link Variable

 28 février 2015 à 13h09

The tv-get-export-link variable controls the value of the href attribute on the HTML a element generated by the $link widget.

This variable has no useful effect when TiddlyWiki is running in a browser, as the href attribute is ignored there – links between tiddlers are performed by JavaScript instead. The variable comes into play when one is using the Node.js configuration to generate a static version of a wiki.

The variable should be a macro with the following parameter:

to
The title of the target tiddler of the link, with no escaping

See also tv-wikilink-template. If both that variable and this one exist, this one dominates.

tv-get-export-path Variable

 28 février 2015 à 13h17

The tv-get-export-path variable specifies the full pathname to which the rendertiddlers Node.js command writes each tiddler.

The variable should be implemented as a JavaScript macro with the following parameter:

title
The title of the tiddler

If no such macro exists, the tiddlers are written to files whose names are percent-encoded, in the command's output folder.

tv-history-list Variable

 29 juin 2017 à 8h46

The tv-history-list variable is assigned by the NavigatorWidget to contain the title of the tiddler containing the current history list.

Compare tv-story-list.

tv-show-missing-links Variable

 

The tv-show-missing-links variable defines if missing links within the scope of the variable are rendered as links or not.

Globally, the variable is set within the PageTemplate and can be changed in the $:/ControlPanel under Settings - Show missing links to tiddlers

If tv-show-missing-links is set to no, missing links are rendered as plain text

If tv-show-missing-links is set to yes, missing links are rendered as wiki-links

tv-story-list Variable

 29 juin 2017 à 8h45

The tv-story-list variable is assigned by the NavigatorWidget to contain the title of the tiddler containing the current story list.

Compare tv-history-list.

tv-tiddler-preview Variable

 20 juin 2015 à 9h27

The tv-tiddler-preview variable indicates whether content is being rendered in a tiddler preview panel.

The value is yes within the preview panel, and undefined elsewhere.

tv-wikilink-template Variable

 28 août 2017 à 10h56

The tv-wikilink-template variable controls the value of the href attribute on the HTML a element generated by the $link widget. The tv-filter-export-link, if defined, it takes precedence over the tv-wikilink-template variable.

This variable has no useful effect when TiddlyWiki is running in a browser, as the href attribute is ignored there – links between tiddlers are performed by JavaScript instead. The variable comes into play when one is using the Node.js configuration to generate a static version of a wiki.

The variable is treated as if it was a macro with the following parameters:

uri_encoded
The title of the target tiddler of the link, but percent-encoded
uri_doubleencoded
The value of the uri_encoded parameter but percent-encoded again, i.e. with its % characters further converted to %25
\define tv-wikilink-template() ../tiddlers/$uri_encoded$.html

The variable defaults to #$uri_encoded$.

See also the tv-get-export-link variable, which dominates over this one.

tv-wikilink-tooltip Variable

 28 février 2015 à 13h04

The tv-wikilink-tooltip variable specifies the default value for the tooltip attribute of the $link widget.

It is often defined as a macro, and its value parsed as inline WikiText.

Exemples

tv-wikilinks Variable

 28 février 2015 à 13h04

The tv-wikilinks variable controls the behaviour of the $link widget.

The widget normally produces a link to a tiddler. But if this variable has the value no, the widget suppresses the link and simply displays the text that would otherwise have served as the link.

You can suppress links for a whole tiddler by placing the following line at the start of the tiddler's text:

\define tv-wikilinks() no

This variable has no effect on external links, as those do not involve the $link widget.

Exemples

tv-wikilinks Variable (Examples)

 28 février 2015 à 10h44

HelloThere,
[[HelloThere]],
<$link to="HelloThere">is //this// a link?</$link>

<$set name="tv-wikilinks" value="no">
HelloThere,
[[HelloThere]],
<$link to="HelloThere">is //this// a link?</$link>
</$set>

TW-Scripts by Mohammad

 6 janvier 2021 à 15h10

TW-Scripts is one of the most comprehensive collections of solutions for Tiddlywiki 5.

https://kookma.github.io/TW-Scripts/

TW-Scripts includes:

  • Collected solutions to questions in Tiddlywiki Google groups
  • Learn through examples
  • Templates, stylesheets
  • Wikitext, macros, and snippets
  • Tips and tricks
  • Search tools 

Plugin TW2Parser

 15 juin 2015 à 7h59

Ce plugin, pour l'instant expérimental, permet d'afficher le WIkiText écrit pour la version classique originelle de TiddlyWiki.

Voir https://tiddlywiki.com/plugins/tiddlywiki/tw2parser/

TW5-firebase: TiddlyWiki5 sur Google Firebase par Peter Neumark

 2 avril 2022 à 11h58

Une version de TiddlyWiki5 hébergée sur Google-Firebase.

https://github.com/neumark/tw5-firebase

J'utilise TiddlyWiki5 avec Google Firebase depuis plus d'un an. C'est suffisamment stable pour l'utiliser au quotidien. Il y a un accompagnement détaillé sur la façon de créer sa propre instance avec de nombreuses captures d'écran. Le processus complet prend moins de 30 minutes : https://neumark.github.io/tw5-firebase/

Merci de considérer cette version comme une preuve de concept plus qu'un produit fini ! Je me suis concentré sur la collaboration multi-appareils ou en petites équipes :

  • Authentification de base (les sacs ont une politique d'accès qui détermine qui peut les lire ou les écrire).
  • De multiples wikis peuvent être hébergés avec le même compte Firebase.
  • Utilise l'authentification sociale intégrée à Firebase pour identifier les utilisateurs.
  • Les tiddlers sont verrouillés individuellement en écriture, pour éviter que les utilisateurs écrasent mutuellement leurs modifications.
Traduction de l'annonce de publication par Peter Neumark

TW5-SingleExecutable by Jed Carty

 6 janvier 2021 à 15h10

TiddlyWiki5 Packaged with the multi-user plugin in a single executable file.

https://github.com/OokTech/TW5-SingleExecutable

Tiddlywiki, node js, multiuser plugin - all packaged into a single file so user can just download the file and run it and not have to install anything else. Versions available for windows, osx, and linux.

TWaddle by Matias Goldman

 29 mai 2015 à 9h43

A collection of hints and tips, musings and proposals from long-time TiddlyWiki contributor Mat Goldman.

http://twaddle.tiddlyspot.com/

This is Mat's, a.k.a <:-) little man-cave in the TiddlyVerse.

Most TW development is, understandably, based on the premise that "Improve code ➔ Better TW". TWaddle is also about developing TW but from the perspective that Bigger community ⇄ Better TW. Thus, TWaddle looks more to people issues - how to attract them, how to make them stick with TW etc.

I'm not a programmer but I am a TW enthusiast so I tiddlefiddle enough to make the occasional discovery of something cool. Given the amount of words I utter, it is also a mere numbers game before I say something that makes sense. TWaddle is intended to capture these eventualities.

TWCommunitySearch

 6 janvier 2021 à 15h10

The CommunitySearch wiki aggregates many public wikis from the community. It is updated automatically every day. At the time of writing, more than 5000 tiddlers are indexed, thus giving access to the largest known collection of TW content.

It lets you search for some specific content among a preselected list of wikis. The indexed content is mostly focused on TW usage, so you would typically use this search system to find information about a particular aspect of TiddlyWiki. Say for example that you want to learn how to make a table of content, type "table of content" in the CommunitySearch box (also accessible in the default tiddler GettingStarted). The search results are links to various wikis, and point directly to the specific tiddlers containing your request.

The CommunitySearch wiki also lets you:

TWEUM Thumbnail.jpg

 

Twexe : un Tiddlywiki5 mono-fichier exécutable

 2 avril 2022 à 11h58

Un Tiddlywiki5 mono-fichier exécutable

https://ihm4u.github.io/twexe/

Fonctionnalités

  • Sauvegardes automatiques
  • Enregistrement automatique
  • Aucune extension de navigateur requise !
  • Fonctionne sous Linux et Windows
  • Fichier exécutable autonome, peut être déplacé, copié, etc.
  • Le wiki est compressé, il occupe moins d'espace disque (parfois même seulement un tiers de l'espace !)
  • Convertit n'importe quel fichier Tiddlywiki5 en fichier exécutable twexe, pas besoin de plugin pour TiddlyWiki
  • Utilise automatiquement l'onglet Sauvegarde du panneau de contrôle, où vous pouvez préciser un dossier pour les sauvegardes si celui par défaut ne vous plaît pas.
  • Récupérez facilement le fichier HTML du wiki à partir du twexe exécutable si vous en avez besoin
  • Ouvre la possibilité de lancer des exécutables externes à partir de votre wiki (pour dessiner des graphiques, etc.) - restez à l'écoute !
  • Reconnaît les images externes (c-à-d avec un champ _canonical_uri)

Twitter Plugin

 28 mars 2017 à 18h39

This plugin adds a <$twitter> widget that can embed a variety of entities from twitter.com:

  • Individual tweets and conversation threads
  • Buttons to tweet a hashtag/account, follow/like an account, or share a URL
  • Timelines showing tweets from a user, hashtag, list or collection

twproxy by Steve Gattuso

 6 janvier 2021 à 15h10

An authentication proxy for your TiddlyWiki.

https://github.com/stevenleeg/twproxy

One of my favorite aspects of TiddlyWiki has been that it's web-based, making it possible for me to access my wiki from everywhere (especially my phone). That being said, I'm a bit paranoid, so I was left a bit unsatisfied with the tiddlywiki server's HTTP basic auth for protecting my wiki. ~23 commits later, I've created something called twproxy that I'd like to share with you all today, as I'm hoping somebody other than myself will find it useful.

Essentially it is a simple proxy that puts your wiki behind a username, password, and optional 2-factor auth prompt. This gives you added security in addition to the ability to remember your credentials past one browsing session (I was getting sick and tired of typing my username/password in over and over using basic auth).

Blocs typés en WikiTexte

 22 avril 2022 à 14h31

Le WikiTexte peut inclure des blocs de texte qui seront interprétés selon le type de leur contenu, aussi appelé « type MIME ». Ces blocs sont déclarés ainsi :

$$$image/svg+xml
<svg xmlns="http://www.w3.org/2000/svg" width="150" height="100">
  <circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="green" />
</svg>
$$$

affichera ceci :

Il est aussi possible de remplacer la déclaration du type de contenu par l'extension de fichier correspondante. Exemple :

$$$.svg
<svg xmlns="http://www.w3.org/2000/svg" width="150" height="100">
  <circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red" />
</svg>
$$$

affichera ceci :

Les types inconnus s'afficheront comme du texte brut :

$$$text/unknown
Du texte brut, qui ne sera pas //mis en forme//.
$$$

affichera ceci :

Du texte brut, qui ne sera pas //mis en forme//.

Un format de rendu peut être indiqué en complément, qui sélectionnera un format différent pour le résultat. Par exemple :

$$$text/vnd.tiddlywiki>text/html
Ceci est un ''peu'' de wikitext
$$$

et

$$$text/vnd.tiddlywiki>text/plain
Ceci est un ''peu'' de wikitext
$$$

afficheront respectivement :

<p>Ceci est un <strong>peu</strong> de wikitext</p>

et :

Ceci est un peu de wikitext

Typography

 17 janvier 2015 à 15h25

Use the documentation macros to keep the text maintainable in the face of change.

Be wary of arbitrarily applying raw bold or italic markup in a sentence. If there's a suitable macro, use that instead. If there isn't a suitable macro, write one or request one.

Use simple backticks (`...`) for fragments of WikiText, but not for the names of things like fields and widgets. These have their own macros.

To keep things clean and simple, quotation marks and apostrophes should be straight ', not curly , and the ellipsis should be three separate dots ... rather than .

Use " as the primary quotation mark, reserving ' for the rare case of a nested quotation.

Avoid using a single hyphen - as sentence punctuation. Instead, use a double hyphen – which TiddlyWiki renders as an en-dash – with a space on either side.

Items in lists and tables should only end with a full stop (period in US English) if they are complete sentences. They should have no trailing punctuation otherwise.

It is very rarely necessary to use an exclamation mark in professional documentation.

Uninstalling a plugin

 17 juin 2022 à 14h29

If you want to follow the steps side by side you can .

Follow these instructions when using TiddlyWiki as a standalone, single file wiki.

  1. Create a backup of your current TiddlyWiki HTML file (just in case)
  2. Open the and go to the Plugins tab
  3. Click on the plugin you want to delete to open it as a standalone tiddler
  4. Click the more button and delete the tiddler
  5. Save your TiddlyWiki
  6. If a yellow warning bar appears at the top of the window, refresh the window so that TiddlyWiki completely removes the plugin
    • Depuis : 5.1.22 It is no longer necessary to refresh TiddlyWiki when deleting plugins that support dynamic loading. See PluginMechanism for more details
  7. The plugin should no longer be active or available
Note
If you use TiddlyWiki with node.js have a closer look at Uninstalling a plugin with Node.js
An overview of working with plugins can be found at Plugins

Uninstalling a plugin with Node.js

 17 juin 2022 à 14h37

Follow these instructions when using TiddlyWiki with client-server Node.js configuration:

  1. Quit the server if it is running
  2. Edit the tiddlywiki.info file (it is in JSON format) and locate the plugins and themes section (see below)
  3. Remove the entries corresponding to the plugins you wish to remove
    • Take care to retain commas to separate items
    • Do not terminate the last item in a list with a comma
  4. Restart the server
{
	"plugins": [
		"tiddlywiki/codemirror"
	],
	"themes": [
		"tiddlywiki/vanilla",
		"tiddlywiki/snowwhite"
	]
}
Note
An overview of working with plugins can be found at Plugins

unique Operator

 
purposeremove all duplicate items from the current list
inputa list of items
parameterignored
outputa list of unique items

Learn more about how to use Filters

unique Operator (Examples)

 17 février 2021 à h32

To remove duplicate entries from a list where deduplication has been prevented using the filter run prefix =:

=[[E]] =[[A]] =[[B]] =[[C]] =[[C]] =[[D]] =[[C]] +[unique[]]

UnpackPluginCommand

 29 octobre 2014 à 11h43

Extrait les tiddlers utiles d'un plugin, en les créant sous forme de tiddlers ordinaires :

--unpackplugin <titre>

untagged Operator

 3 février 2015 à 19h18
purposediscard any input titles that have tags
inputa selection of titles
parameternone
outputthose input tiddlers that have no tags
! outputthose input tiddlers that have at least one tag

Learn more about how to use Filters

A tiddler is deemed to have no tags if it:

  • doesn't exist
  • doesn't have a tags field
  • has an empty tags field

Examples

untagged Operator (Examples)

 24 janvier 2015 à 14h27

[untagged[]]

[all[shadows]untagged[]]

[list[HelloThere]!untagged[]]

untrunc Operator

 17 juin 2019 à 17h33
purposerounds a list of numbers to the next integer with largest absolute value, that is, away from zero
inputa selection of titles
outputrounds each of the input numbers to the next integer with largest absolute value, that is, away from zero

Learn more about how to use Filters

Depuis : 5.1.20 See Mathematics Operators for an overview.

This is the inverse operation of trunc: trunc rounds to zero, but untrunc rounds away from zero.

Examples

untrunc Operator (Examples)

 17 juin 2019 à 17h29

[[1.6]untrunc[]]

[[-1.6]untrunc[]]

=-1.2 =-2.4 =3.6 =4.8 =5.1 +[untrunc[]]

unusedtitle Macro

 27 avril 2021 à 19h40

The unusedtitle macro returns an unused title. Optionally you can provide a base title to generate the new title.

It uses the same method as the create new tiddler button, a number is appended to the end of the base name.

Parameters

baseName
A string specifying the desired base name, defaulting to New Tiddler.
The default setting can be adjusted in the $:/ControlPanel : Info : Basics - tab.
separator
Depuis : 5.2.0 An optional string specifying the separator between baseName and the unique number. eg: separator:"-". Defaults to a space: " ". If you need an empty separator use the template!
template
Depuis : 5.2.0 A optional template string can be used to allow you maximum flexibility. If the template string is used, there will always be a counter value.

Template String

$basename$
This variable will be replaced by the content of the baseName parameter
$separator$
This variable will be replaced by the separator parameter
$count$
This variable will be created automatically and is a counter starting with 0
$count:4$
This variable will be created automatically and starts at 0000
:4 represents the number of digits

Examples

unusedtitle Macro (Examples 1)

 18 novembre 2021 à 2h55
<<unusedtitle template:"$count:2$-new">>

<<unusedtitle baseName:"new" template:"$count:2$-$basename$">>

<<unusedtitle baseName:"new" separator:"-" template:"$count:2$$separator$$basename$">>


Show the code
\define testCreate()
<$action-createtiddler $basetitle=<<unusedtitle template:"$count:2$-new">>/>
\end

\define testCreate1()
<$action-createtiddler $basetitle=<<unusedtitle baseName:"new" separator:"-" template:"$count:2$$separator$$basename$">>/>
\end

\define testNew()
<$action-sendmessage $message="tm-new-tiddler" title=<<unusedtitle baseName:"new" template:"$count:2$-$basename$">> />
\end

```
<<unusedtitle template:"$count:2$-new">>
```

<$button actions=<<testCreate>> >
<$action-setfield $tiddler="$:/state/tab/sidebar--595412856" text="$:/core/ui/SideBar/Recent"/>
Create Tiddler
</$button>

```
<<unusedtitle baseName:"new" template:"$count:2$-$basename$">>
```

<$button actions=<<testNew>>>
<$action-setfield $tiddler="$:/state/tab/sidebar--595412856" text="$:/core/ui/SideBar/Recent"/>
New Tiddler
</$button>

```
<<unusedtitle baseName:"new" separator:"-" template:"$count:2$$separator$$basename$">>
```

<$button actions=<<testCreate1>>>
<$action-setfield $tiddler="$:/state/tab/sidebar--595412856" text="$:/core/ui/SideBar/Recent"/>
Create Tiddler
</$button>

---

<details>
    <summary>Show the code</summary>
    <pre><code><$view><pre><code>
</details>

unusedtitle Macro (Examples)

 28 février 2021 à 14h12

<<unusedtitle>>
The following example works best if there is an open tiddler in draft mode, or there is a tiddler named "New Tiddler". So you can see the automatic numbering.
<<unusedtitle separator:"-">>
<<unusedtitle baseName:"anotherBase">>
<<unusedtitle baseName:"About" separator:"-">>
<<unusedtitle template:"$count:2$-test">>


Working buttons can be found at: unusedtitle Macro (Examples 1). You'll have to examine the code to see, what's going on.

UpgradeMechanism

 6 juin 2016 à 13h28
  1. Open upgrade.html
  2. Includes a data tiddler called $:/UpgradeLibrary that contains the latest compatible versions of all plugins in the library
  3. Drag in old wiki file
  4. Place tiddlers into a data tiddler $:/Import that is typed as a "pending import"
  5. Kick off import processing for each tiddler
    1. Give each "upgrader" module a chance to inspect the incoming tiddlers
    2. Upgrader modules can trigger actions for each tiddler:
      • Display a warning message
      • Don't import
      • Replace with another tiddler from the upgrade library
      • Disable incompatible plugins
  6. Display the newly created pending import tiddler through a new view template segment
    1. Displays the payload tiddlers as a list of titles and checkboxes, with a dropdown showing the full details of the tiddler
    2. Perhaps we also suppress the usual JSON display for data tiddlers behind a reveal widget
  7. The user can adjust the selection checkboxes
  8. Clicking "Upgrade" unpacks the selected tiddlers from the pending import tiddler
  9. The pending import tiddler and the upgrade library tiddler are excluded from the subsequent save operation

Obtenir la dernière version

 20 juin 2015 à 10h07

De nouvelles versions de TiddlyWiki sont publiées régulièrement, avec des améliorations et des corrections de bogues. Il est recommandé de rester à jour en hissant votre wiki au niveau de la dernière version.

Introduction

La procédure décrite ici est réservée à la mise à niveau de fichiers TiddlyWiki autonomes. Pour mettre à niveau TiddlyWiki sur Node.js, il existe une méthode différente.

Quand vous mettez à niveau, n'oubliez pas la première règle d'utilisation de Tiddlywiki :

Il est de votre responsabilité de vous occuper de vos données ; prenez soin d'effectuer des sauvegardes, surtout quand vous mettez à niveau le noyau de TiddlyWiki.

Mise à niveau en ligne

Cette procédure fonctionnera sur la plupart des navigateurs de bureau. Notez que vos données personnelles ne quittent pas votre navigateur pendant la procédure.

  1. Localisez votre fichier TiddlyWiki sur le système de fichiers (à l'aide de Windows Explorer, du Finder sur Mac OS X, ou de votre gestionnaire de fichiers sur Linux)
  2. Visitez la page https://tiddlywiki.com/upgrade.html dans votre navigateur
  3. Faites glisser votre ancien fichier TiddlyWiki HTML sur la fenêtre du navigateur
    • Si le fichier est crypté, un mot de passe vous sera demandé
  4. Passez en revue la liste des tiddlers qui seront mis à niveau
  5. Cliquez sur Upgrade
  6. Enregistrer les changements pour sauvegarder la nouvelle version

Cela aura pour résultat de télécharger sur votre ordinateur un fichier nommé upgrade.html. Ce fichier constitue la version à niveau de votre ancien fichier. Il se peut que vous deviez vous rendre là où upgrade.html a été téléchargé, renommer upgrade.html avec le nom de l'ancien fichier que vous mettez à niveau, et remplacer l'ancien fichier en déplaçant le nouveau à sa place.

Mise à niveau hors ligne

Vous pouvez également télécharger le fichier https://tiddlywiki.com/upgrade.html localement et effectuer la même procédure de glisser-déposer pour mettre vos fichiers à niveau.

Problèmes avec les mises à niveau

Il est possible qu'une personnalisation appliquée dans une version précédente devienne inopérante une fois la mise à niveau effectuée. Deux techniques peuvent être employées pour vous aider à retrouver l'origine du problème :

  • Essayez de répéter la mise à niveau en décochant tous les tiddlers qui pourraient contenir des personnalisations de TiddlyWiki
  • Utilisez le ModeSansÉchec pour désactiver toutes les adaptations personnalisées des tiddlers shadow

Vous pouvez voir quels tiddlers shadow ont été modifiés dans l'onglet Filtres de la recherche avancée. Choisir "Les tidders shadow modifiés" depuis le menu déroulant.

Mettre à niveau pour Node.js

 29 novembre 2014 à 8h15

Si vous avez installé TiddlyWiki sur Node.js de manière standard, vous pouvez le mettre à jour dès qu'une nouvelle version est publiée, à l'aide de la commande suivante :

npm update -g tiddlywiki

Sur Mac ou Linux, vous devrez ajouter sudo :

sudo npm update -g tiddlywiki

uppercase Operator

 19 juin 2019 à 12h08
purposereturns each item in the list as uppercase
inputa selection of titles
outputthe input titles with each lowercase letter replaced by the equivalent uppercase letter

Learn more about how to use Filters

Depuis : 5.1.20

See also lowercase Operator and sentencecase Operator.

Examples

uppercase Operator (Examples)

 13 juin 2019 à 16h36

[[Abc]uppercase[]]

[tag[HelloThere]uppercase[]]

URI

 23 juin 2015 à 7h55

Une URI (souvent aussi connue comme URL) est une chaine de caractère utilisée pour spécifier la localisation d'une ressource telle qu'une page web.

Using a custom path prefix with the client-server edition

 12 septembre 2014 à 15h16

By default, when running TiddlyWiki on Node.js, the server exposes the wiki at the URI formed from the protocol, host and port - for example, http://127.0.0.1:8080/.

There are two steps to running the wiki at a custom path like http://127.0.0.1:8080/path/to/my/wiki/:

  1. Configure the server by passing /path/to/my/wiki as the pathprefix argument of the ServerCommand
  2. Configure the client by creating a tiddler called $:/config/tiddlyweb/host that contains $protocol$//$host$/path/to/my/wiki/

Using Excise

 5 mai 2023 à 11h42

Excise text

From the EditorToolbar you can export selected text to a new tiddler and insert a link, Transclusion or macro in its place. Click Excise text (), input name of the new tiddler, and choose excise method.

How to excise text

  1. Highlight the relevant piece of text
  2. Click Excise text ()
  3. Give the new tiddler a title.
  4. Choose if the new tiddler will be tagged with the title of the current tiddler (see note below).
  5. Choose replacing method: link, transclusion, or macro.
  6. Click the Effectue une excision button

Note! If you choose the option to Tag new tiddler with the title of this tiddler, the new tiddler will be tagged with the name of the current tiddler before it has been edited. If you have changed the title of the current tiddler, save it first and edit it again to perform excision with this option.

Using HTTPS

 11 novembre 2021 à 2h36

By default, TiddlyWiki's WebServer serves resources over the insecure HTTP protocol. The risk is minimal if it is only being used within a private, trusted network but in many situations it is desirable to use a secure HTTPS connection.

HTTPS requires the server to be configured with a certificate via a "cert" file and a "key" file, configured via the tls-cert and tls-key parameters.

Depuis : 5.2.2 The optional tls-passphrase parameter allows the server to use certificate files that have been generated with a passphrase/password.

Certificates can be obtained from a certification authority such as https://letsencrypt.org/, or you can create a self-signed certificate for internal testing.

To create the required certificate files with the popular openssl utility:

openssl req -newkey rsa:2048 -new -nodes -keyout mywikifolder/key.pem -out mywikifolder/csr.pem
openssl x509 -req -days 365 -in mywikifolder/csr.pem -signkey mywikifolder/key.pem -out mywikifolder/server.crt
tiddlywiki mywikifolder --listen username=joe password=bloggs tls-key=key.pem tls-cert=server.crt

If using a tls-passphrase to generate the certificate files, the commands would change as below:

  • remove the -nodes flag, which specifies "no encryption"
  • replace TLS_PASSPHRASE in the -passout and -passin parameters in the below commands with your chosen string.

This is the simplest, but least secure method, of passing a passphrase to the certificate utility. See this Stack Exchange anwser on openssl certificates and the openssl and openssl-passphrase-options page in the openssl utility documentation.

openssl req -newkey rsa:2048 -passout pass:TLS_PASSPHRASE -new -keyout mywikifolder/key.pem -out mywikifolder/csr.pem -passout pass:TLS_PASSPHRASE
openssl x509 -req -days 365 -in mywikifolder/csr.pem -signkey mywikifolder/key.pem -out mywikifolder/server.crt -passin pass:TLS_PASSPHRASE
tiddlywiki mywikifolder --listen username=joe password=bloggs tls-key=key.pem tls-cert=server.crt tls-passphrase=TLS_PASSPHRASE

Utiliser des liens pour naviguer entre les tiddlers

 20 juin 2015 à 10h18

Vous pouvez utiliser des liens (habituellement affichés en bleu)pour naviguer d'un tiddler à l'autre. Cliquer sur le lien vers un tiddler vous amène à ce tiddler. Si le tiddler est fermé, il sera ouvert. La particularité de TiddlyWiki est de rendre les liens vers tiddlers aussi accessible que possible. Il y a des liens partout ! Voici les principaux endroits où vous pourrez trouver des liens vers d'autres tiddlers dans TiddlyWiki :

  • Vous pouvez créer un lien vers un tiddler, qu'il existe déjà ou pas, dans le contenu de tout tiddler. Voir Liens avec WikiTexte pour consulter les différentes façons de créer simplement des liens entre tiddlers.
  • Chaque tag de votre tiddler (comme par exemple le tag Working with TiddlyWiki sous le titre de ce tiddler) contient un lien vers ce tiddler tag, ainsi que la liste de tous les tiddlers avec ce tag. Ce qui vous permet d'ouvrir un de ces tiddlers.
  • Le Panneau d'information de chaque tiddler vous donne l'accès à 4 onglets contenant un liste additionnelle de tiddlers connexes :
    • L'onglet Références liste tous les tiddlers avec un lien vers le tiddler en cours.
    • L'onglet Étiqueté liste tous les tiddlers tagués avec le titre du tiddler en cours.
    • L'onglet Liste liste tous les tiddlers (ou les tiddlers potentiels) mentionnés dans le champ liste du tiddler en cours.
    • L'onglet Listé liste tous les tiddlers qui mentionnent le tiddler en cours dans leurs champs liste.
  • Les onglets de la barre de menu contiennent plusieurs listes de liens vers des tiddlers :
    • L'onglet Récents liste les 100 tiddlers récemment modifiés, en commençant pas la modification la plus récente.
    • L'onglet Plus propose 8 listes supplémentaires de tiddlers :
      • Tout liste tous les tiddlers dans l'ordre alphabétique.
      • Tags liste tous les tags. Vous pouvez cliquer sur la pilule de tout tag pour accéder à la liste des tiddlers étiquetés par ce tag.
      • Manquants liste tous les tiddlers qui n'existent pas encore, mais auquels sont liés à d'autres tiddlers. Utile pour trouver les tiddlers que vous aviez prévu de créer, sans en avoir jamais eu le temps.
      • Ébauches liste tous les tiddlers actuellement en mode ébauche. TiddlyWiki considère l'ébauche d'un tiddler comme un tiddler séparé de l'original aussi longtemps que vous le modifiez, aussi, tant que vous modifierez le tiddler titré Australie, il y aura deux tiddlers, Australie et Draft of 'Australie'. Quand vous clôturerez l'ébauche en confirmant les modifications, ces modifications seront apportées au tiddler original Australie. Aussi, traitez l'onglet Ébauches comme un moyen de retrouver toutes les ébauches que vous avez commencé.
      • Orphelins liste tous les tiddlers non connectés à un autre tiddler par des lien, tag ou liste. C'est une assistance utile à l'organisation de vos fichiers - qui montre quels tiddlers doivent y faire l'objet d'une intégration plus soigneuse.
      • Types liste tous les tiddlers à contenu spécial, comme les images ou l'audio.
      • Système liste tous les SystemTiddlers.
      • Shadows liste tous les ShadowTiddlers.
  • Résultats de la recherche est une liste des tiddlers contenant le texte que vous avez saisi dans la zone de recherche.
  • Enfin, vous pouvez créer vos propres tiddlers de listes personnalisées par différents moyens :
    • Vous pouvez transclure un filtre (voir Transclusion grâce à WikiText). Par exemple, l'ajout de {{{ [tag[montagne]] }}} à un tiddler insèrera une liste de tiddlers avec le tag montagne.
    • Vous pouvez utiliser le ListWidget. C'est plus compliqué que transclure un filtre, mais offre plus de souplesse dans l'affichage et la mise en forme d'une liste exactement de la façon dans laquelle vous désirez qu'elle s'affiche.

Using Stamp

 1 janvier 2023 à 11h49

Snippets are pre-configured snippets of text which can be inserted into the editor by clicking the stamp () button on the toolbar and then on the required item.

Snippets can either replace, or be added before and/or after, the selected text in the editor.

Create a snippet

Whilst editing a tiddler

  1. Click stamp () on the toolbar
  2. Click "Add your own" at the bottom of the menu
  3. Type the text for the snippet in the editor
  4. Enter the caption for the snippet menu item in the caption field
  5. Click the Confirm changes to this tiddler button

Manually

  1. Create a new tiddler by clicking the Create a new tiddler button in the sidebar
  2. Change the title for the tiddler (from e.g. New Tiddler 1). The tiddler title determines the menu item for the stamp if you do not set a caption field (see below).
    Pro tip Set a title like $:/yourusername/snippets/My new stamp to 'file' your new tiddler away as a system tiddler which doesn't appear in the normal search results
  3. Add the tag $:/tags/TextEditor/Snippet by entering $:/tags/TextEditor/Snippet in the tag name tag box and clicking Add (or pressing the Enter key)
  4. Enter the snippet content (which you wish to appear in the editor when you click the stamp menu ) in the editor
  5. Create a field with the name caption and value set to the text for the snippet's stamp menu item:
    1. Enter caption in the Add new field field name box
    2. Enter the stamp menu item caption in the field value box

Re-ordering snippets

Your new snippet will appear at the bottom of the stamp menu by default. To adjust the order of snippets:

  1. Navigate to a snippet tiddler
  2. Click the tag pill
  3. Drag items up and down the menu of snippets

Adding a prefix and/or suffix to a selection Depuis : 5.1.20

By default, the stamp button replaces text you have selected in the editor (let's say selectedText)with your snippet (let's say $:/my/snippet).

If instead of replacing selected text, you wish the stamp button to add wikitext before and/or after the selection:

  1. Create a snippet tiddler (tagged $:/tags/TextEditor/Snippet, with caption field set to desired stamp menu item text) using either of the two methods above
  2. Create a new tiddler with either /prefix or /suffix appended to the end of the snippet tiddler's title, according to whether you wish the stamp to insert the snippet content before (/prefix) or after (/suffix) the text selected in the editor.
    • Do not tag the tiddler $:/tags/TextEditor/Snippet; the caption field is ignored
    • Set the tiddler text to the text you wish to be inserted before or after your selection
Example configuration for snippet2 with prefix+suffix
TiddlerTiddler contentTagcaption field
$:/snip/snippet2$:/tags/TextEditor/SnippetMy second stamp menu item
$:/snip/snippet2/prefixTextIWantPrependedToSelection
$:/snip/snippet2/suffixTextIWantAppendedToSelection

Utilisation des feuilles de style

 22 juin 2015 à 19h32

Les premières étapes pour changer l'apparence de TiddlyWiki sont de choisir et d'appliquer un des thèmes disponibles, ou de modifier la palette de couleurs.

De plus, les feuilles de style CSS personnalisées peuvent être définies en taguant un tiddler par $:/tags/Stylesheet. Essayez de créer une feuille de style maintenant avec le contenu suivant pour modifier la couleur de fond de la page à rouge :

html body.tc-body {
	background: red;
}

Outrepasser les réglages du thème

Les feuilles de style personnalisées sont appliquées indépendamment de celles du thème. Toutefois, il est souvent nécessaire aux règles css de votre feuille de style d'être plus spécifiques que celles du thème auquel vous désirez vous substituer. Ainsi, html body.tc-body sera plus pointu que body.tc-body.

Les types de feuille de style

Il est en général bien mieux de faire appel au text/css pour les feuilles de styles. Cela les interprète comme des feuilles de style à part entière, et assure que TiddlyWiki ne leur applique aucun processus wiki.

Si vous souhaitez utiliser macros et transclusions au sein de vos feuilles de style vous devrez y substituer le type WikiTexte par défaut text/vnd.tiddlywiki. Ce qui permettra a une interprétation WikiTexte d'être complètement appliquée. Voilà un exemple :

\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline html

body.tc-body pre {
	<<box-shadow "inset 0 1px 0 #fff">>
}

Le pragma \rules au début du tiddler restreint l'application WikiTexte aux seules macros et transclusions. Sont ainsi évités les déclenchements de processus WikiTexte erronés indésirables.

Un tiddler feuille de style est interprété de façon telle qu'il est, dans un premier temps wikifié et la portion de texte en résultant est extraite pour être considéré comme du CSS. Toute balise HTML que vous utiliseriez dans votre feuille de style est ainsi ignorée. Par exemple, les éléments HTML générés par le RevealWidget n'affecteront pas le résultat en sortie. Comme dans l'exemple suivant, vous pouvez entourer les règles de balises <pre> pour les afficher comme des blocs de code sans affecter leur interprétation, incluant la prise en compte de la macro entourée.

\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline html

<pre>body.tc-body pre {
	<<box-shadow "inset 0 1px 0 #fff">>
}
</pre>

Macros feuille de style

Le noyau de TiddlyWiki offre plusieurs macros globales that are helpful dans l'élaboration des feuilles de style .

Using SVG

 18 juin 2016 à 9h58

TiddlyWiki5 allows you to use SVG to display vector graphics in two ways:

  • Tiddlers with the type image/svg+xml are interpreted as SVG images, and displayed and transcluded as self-contained <img> elements with the SVG embedded as a data URI in the src attribute.
  • WikiText can also include inline SVG elements directly. See below for an example.

Embedding SVG tiddlers

You can embed an SVG image tiddler using the ordinary transclusion syntax:

{{Motovun Jack.jpg}}

You can also use Typed Blocks in WikiText to embed an inline SVG tiddler.

The implications of the image being rendered within an <img> element are that it is sandboxed; it can't use CSS styles from the parent document, for example. Neither can the image use WikiText features like transclusion.

Embedding SVG elements

The other way to use SVG is to embed the <svg> element directly. For example:

Note that inline SVG elements don't need an <?xml version="1.0"?> directive.

Including HTML or WikiText content in SVG images

You can include simple text strings in SVG images using the <text> element:

Hello, out there

HTML or WikiText content can be included within inline SVG images using the <foreignObject> element. For example:

Here is some text that requires a word wrap, and includes a link to a tiddler.

Transcluding SVG elements

When embedding SVG elements you can also use WikiText features like transclusion. For example, here is an SVG circle with the radius set to the value in the tiddler $:/SVGExampleRadius:

You can edit the value of the radius here:

Making curved text with SVG

Cette démonstration montre comment utiliser SVG pour faire suivre un chemin incurvé à un texte transclu. Entrez du texte dans la zone çi-dessous pour essayer ; visualiser le code source pour voir examiner le fonctionnement.

Using the external JavaScript template

 19 mars 2023 à 13h08

You can use a special template to externalise TiddlyWiki's core code into a separate file. This configuration allows the browser to cache the core for improved efficiency.

Background

TiddlyWiki in the single file configuration ordinarily packs everything into a single file: your data, and the JavaScript, CSS and HTML comprising TiddlyWiki itself. This lack of dependencies is usually very convenient: it means that it is impossible for the parts of a TiddlyWiki to become separated, and enormously improves the chances of it still functioning in the future.

However, there is some inefficiency in this arrangement because the core code is repeatedly loaded and saved every time the content of the wiki is saved. This inefficiency is partially ameliorated when working in the client server configuration because once the wiki is loaded by the browser the synchronisation process only transmits individual tiddlers back and forth to the server.

The remaining inefficiency when working in the client server configuration is that the single page wiki that is initially loaded will contain a copy of the entire core code of TiddlyWiki, making it impossible for the browser to cache it.

Using the external JavaScript template with the client-server configuration

The mechanism is activated by setting the root-tiddler parameter to $:/core/save/all-external-js. This template externalises TiddlyWiki's core JavaScript into a separate file. For example, the following command will start your server with caching enabled. It will transfer the wiki with two GET requests, and the core can be cached by the browser.

tiddlywiki YOUR_WIKI_FOLDER --listen 'root-tiddler=$:/core/save/all-external-js' use-browser-cache=yes

You can activate your browser's Developer Tools: Network tab and reload the page to see how it works.

On Windows, Command Prompt (CMD) users need to replace single quotes ' with double quotation marks ".

Initialising a new wiki

The provided edition server-external-js contains all the configuration necessary to use the external JavaScript template. Here is an example:

tiddlywiki ./myNewWiki --init server-external-js
tiddlywiki ./myNewWiki --build listen

The above commands perform the following:

  • Create a new wiki with external JavaScript customisation included.
  • Start the server with external JavaScript enabled. The server listens on port 8080. Visit http://localhost:8080 in your browser.

To customise your --build listen command, see tiddlywiki.info Files and ListenCommand.

Using the external JavaScript template with the single file configuration

You can use the "external-js" template with your single file wiki, but this requires that you have TiddlyWiki's core JavaScript saved alongside your HTML file. You may prefer this configuration, for example, if you have several wikis on a WebDav server. (See: Saving via WebDAV)

This functionality is intended for advanced users: there are many more ways for things to go wrong than with the standard single file configuration

Saving your snapshots

If you start your TiddlyWiki server in the "external-js" configuration, snapshots you save from the wiki will also have the external-js configuration.

You can click on the "cloud" button and choose Save snapshot for offline use. The html wiki you saved will have a reduced file size compared to a regular snapshot because the TiddlyWiki core code has been externalised. However, to be able to use this wiki, you must also have a copy of TiddlyWiki's core JavaScript in the same directory; see below for instructions for obtaining it

The "server-external-js" edition lets you save the snapshot from the command line:

tiddlywiki YOUR_WIKI_FOLDER --build index

The files external-5-x-x.html and tiddlywikicore-5.x.x.js will be saved in your wiki folder's output directory.

Obtaining the TiddlyWiki core in the browser

For advanced users

Export the TiddlyWiki core JavaScript code for running with external JavaScript:

Further information

Obtaining the TiddlyWiki core with Node.js

You can also run the following command to obtain the core JavaScript. The file tiddlywikicore-5.x.x.js will be saved in theoutput directory of your wiki folder:

tiddlywiki YOUR_WIKI_FOLDER \
    --render '$:/core/templates/tiddlywiki5.js' \
    '[[tiddlywikicore-]addsuffix<version>addsuffix[.js]]' \
    'text/plain'

The "server-external-js" edition has a shortcut for the BuildCommand to do the same thing:

tiddlywiki YOUR_WIKI_FOLDER --build tiddlywikicore

Upgrading your standalone wiki

This procedure is experimental, please take care to backup your data

Before you proceed, backup your wiki first! Follow the steps below to upgrade a single-file wiki with the external JavaScript template:

  1. Proceed with the Upgrade Process for Standalone TiddlyWikis. Your wiki will be converted to a full standalone HTML.
  2. Open your upgraded wiki in the browser. If you'd like to revert to using the regular template, restore the original shadow tiddler $:/config/SaveWikiButton/Template by deleting any custom copy. Save your wiki and you are done.
  3. Otherwise, from your wiki, select the Tools tab from the sidebar and click on the export tiddlywiki core button to obtain the core from your wiki.
  4. Verify that $:/config/SaveWikiButton/Template still contains $:/core/save/offline-external-js. Modify if necessary.
  5. Save your wiki again. Your wiki is now converted to using the external core.

Using the integrated static file server

 3 juillet 2018 à 11h04

Any files in the subfolder files of the wiki folder will be available via the route \files\<uri-encoded-filename>. For example: http://127.0.0.1:8080/files/Motovun%20Jack.jpg

This can be useful for publishing large files that you don't want to incorporate into the main wiki (PDFs, videos, large images, etc.).

Static files can be referenced directly:

  • [ext[./files/a-big-document.pdf]] - to make a link to a PDF
  • [img[./files/a-big-image.png]] - to embed an image

Alternatively, the _canonical_uri field can be used to reference the files as external tiddlers.

Using the read-only single tiddler view

 24 août 2018 à 8h32

TiddlyWiki's experimental single tiddler per page, read-only view uses a simplified page layout, and implements links between tiddlers, but there are no other interactive features. Compared to a full TiddlyWiki user interface, it is very lightweight and usable even over very slow connections.

Alongside serving the full interactive wiki at the path / (e.g. http://127.0.0.1:8080/), TiddlyWiki serves each tiddler at the path /<url-encoded-tiddler-title>. For example:

Ordinary, non-system tiddlers are rendered through a special view template while system tiddlers are rendered through a template that returns the raw text of the rendered output. In this way ordinary tiddlers can be browsed by end users while system tiddlers can be included in their raw form to use them as JS, HTML or CSS templates. Additionally these defaults can be overwritten on a per tiddler basis by specifying the _render_type and _render_template fields accordingly.

The templates are controlled by these parameters:

Using TiddlyWiki for GitHub project documentation

 12 septembre 2014 à 15h15

TiddlyWiki5 can be used to produce documentation for GitHub projects. It lets you maintain a single set of documentation as a TiddlyWikiFolder containing separate tiddler files under source code control, and then use it to produce readme.md files for inclusion in project folders, or HTML files for storage in GitHub Pages. Both features are demonstrated by TiddlyWiki5 itself.

Generating readme.md files

When displaying the contents of a folder GitHub will look for a readme.md file and display it. Note that it will not display full HTML files in this way, just static MarkDown files (this is a security measure). Happily MarkDown permits a safe subset of HTML, and thus to generate a readme.md file that is suitable for GitHub it is just necessary for TiddlyWiki5 to generate the content of the <body> element of an HTML document, and give it the appropriate filename.

This is done with this command:

--rendertiddler ReadMe ./readme.md text/html

It saves the tiddler ReadMe to the file ./readme.md in the text/html format.

By default, tiddler links will be rendered as <a> links to a relative URI consisting of the title of the tiddler. This behaviour can be overridden by defining the macro tv-wikilink-template, as is done at the top of the tiddler ReadMe:

\define tv-wikilink-template() https://tiddlywiki.com/static/$uri_doubleencoded$.html

See the LinkWidget for more details.

In this example, tiddler links are rendered as links to the static rendering of tw5.com.

Utiliser TiddlyWiki sur Node.js

 22 juin 2015 à 1h15

TiddlyWiki5 peut être utilisé depuis la ligne de commande, dans le but d'effectuer un ensemble d'opérations qui manipulent dossiers TiddlyWiki, fichiers de tiddlers et fichiers TiddlyWiki.

Par exemple, la commande ci-dessous charge les tiddlers d'un fichier TiddlyWiki HTML, et enregistre l'un d'eux dans un fichier HTML statique :

tiddlywiki --verbose --load monwiki.html --rendertiddler LisezMoi ./lisezmoi.html

L'exécution du programme tiddlywiki depuis la ligne de commande démarre le noyau TiddlyWiki, charge les plugins de base et met en place une structure de wiki vide. Puis les arguments de la ligne de commande sont traités à la suite, de gauche à droite. Les arguments sont séparés par des espaces.

Le premier argument est un chemin optionnel vers le dossier à charger. Si absent, le répertoire courant est utilisé.

Suivent les commandes proprement dites, avec leurs arguments spécifiques, chaque commande étant annoncée par le préfixe --.

tiddlywiki [<cheminverslewiki>] [--<commande> [<arg>[,<arg>]]]

Les commandes disponibles sont :

SVG, son Utilisation

 22 juin 2015 à 7h26

TiddlyWiki5 propose d'afficher les illustrations vectorielles SVG de deux façons :

  • Les Tiddlers avec le type image/svg+xml sont interprétés comme des images SVG, et affichés et transclus des éléments <img> autonomes avec du code SVG intégré (le lien URI vers les données source est dans l'attribut src)
  • WikiText peut aussi inclure directement des éléments SVG en ligne. Voir ci-dessous pour un exemple.

Intégration de tiddlers SVG

Vous pouvez intégrer un tiddler image SVG en utilisant la syntaxe ordinaire de transclusion :

{{Motovun Jack.jpg}}

De même, vous pouvez faire appel aux blocs typés pour intégrer un tiddler SVG en mode ligne.

Toutefois, le rendu de l'image par l'élément <img> fait qu'elle passe par un bac à sable, et ne peut pas récupérer les styles CSS du document parent, par exemple. L'image, en elle-même, ne peut pas utiliser de fonctionnalités WikiText comme la transclusion.

Intégration d'éléments SVG

L'autre façon d'utiliser SVG est d'intégrer des éléments <svg> directement. Par exemple :

Notez que les éléments SVG en mode ligne ne nécessitent pas de directive <?xml version="1.0"?>.

Inclure du contenu HTML ou WikiText dans des images SVG

Vous pouvez inclure de simples chaine de texte dans des images SVG par l'emploie de l'élément <text>  :

Salut d'ici

Le contenu HTML or WikiText peut être inclu dans des images en mode ligne via l'élément <foreignObject>. Par exemple :

Voici du texte qui réclame un retour à la ligne, et intègre un lien vers un tiddler.

Transclusion d'éléments SVG

Lors de l'intégration d'éléments SVG vous pouvez faire appel à des fonctionnalités WikiText comme la transclusion. Par exemple, voici un cercle SVG dont la valeur du rayon est réglée dans le tiddler $:/SVGExampleRadius :

Vous pouvez modifier la valeur du rayon :

Tracer un texte incurvé avec SVG

Cette démonstration montre comment utiliser SVG pour faire suivre un chemin incurvé à un texte transclu. Entrez du texte dans la zone çi-dessous pour essayer ; visualiser le code source pour voir examiner le fonctionnement.

Utility by Mohammad

 17 novembre 2020 à 16h02

The utility plugin objective is to provide set of tools for developers and authors.

https://kookma.github.io/TW-Utility/

These tools include simple transclusions, show raw contents of tiddlers, author tools, wikitext macros, show fields in view mode, etc.

Utility Classes

 10 octobre 2022 à 8h42

Depuis : 5.2.4 The following outlines a few predefined CSS classes intended to make it simpler to style HTML block-elements and wikitext tables.

General Utility Classes

tc-centerCentres a block-element to the middle of the container
tc-max-width Expands a block-element to use the maximum width of the container
tc-max-width-80Sets the width of a block-element to use 80% of the maximum container width. This setting is useful with the tc-center class
tc-edit-max-width Expands TextWidgets to use the maximum available width. See ControlPanel -> Info -> Basics
tc-first-link-nowrapEnsures that any links in the first table column will never wrap to the next line

Table Utility Classes

tc-table-no-borderRemoves the borders of a table
tc-first-col-min-widthThe first column of a table will take up minimal possible width. It adapts to the content

Variable Attribute Values

 26 juillet 2023 à 16h10

Variable attribute values are indicated with double angle brackets around a macro invocation. For example:

<div title=<<MyMacro "Brian">>>
...
</div>

The behaviour of variables invoked via widget attributes is not the same as when they are invoked via normal wikitext. In addition, the behaviour depends on how the variable is declared:

how declaredbehaviour
\defineTextual substitution of parameters is performed on the body text. No further processing takes place. The result after textual substitution is used as the attribute's value
$set, $let, $vars, \procedure, \widgetBody text is retrieved as-is and used as the attribute's value.
\functionWhen a function is invoked as <div class=<<macro>>/>, it is a synonym for <div class={{{[function[macro]]}}}/>. As with any filtered transclusion (i.e. triple curly braces), all results except the first are discarded. That first result is used as the attribute's value. Note that functions are recursively processed even when invoked in this form. In other words a filter expression in a function can invoke another function and the processing will continue

Variable Usage

 26 juillet 2023 à 15h59

Ways to define variables and parameters

how declared how parameters are defined accessing parameter values in the body
\define()$param$, <<__param__>>
$parameters or \parameters<<param>>
$set, $let, $vars$parameters or \parameters<<param>>
\procedure, \widget(), $parameters or \parameters<<param>>
\function()<param>
javascript macrosexports.params javascript property arraypassed as normal javascript function parameter and so accessed as a normal javascript variable

Examples

These examples are meant to provide insight into the various ways of defining and using parameters. In many cases they do not illustrate best practices.

\define

\define mp1(a1)  $a1$ - <<__a1__>>

\define mp2() <$parameters a1><<a1>></$parameters>

\define mp3()
\parameters(a1)
<<a1>>
\end

|<<mp1 foo>>|<<mp2 foo>>|<<mp3 foo>>|

$set, $let, $vars

<$set name="sp1" value="<$parameters a1><<a1>></$parameters>">
<$set name="sp2" value="""
\parameters(a1)
<$parameters a1><<a1>></$parameters>
""">
<$vars vp1="<$parameters a1><<a1>></$parameters>" vp2="""
\parameters(a1)
<$parameters a1><<a1>></$parameters>
""">
<$let lp1="<$parameters a1><<a1>></$parameters>" lp2="""
\parameters(a1)
<$parameters a1><<a1>></$parameters>
""">

|<<sp1 foo>>|<<sp2 foo>>|
|<<vp1 foo>>|<<vp2 foo>>|
|<<lp1 foo>>|<<lp2 foo>>|
</$let>
</$vars>
</$set>
</$set>

\procedure, \widget

\procedure pp1(a1)  <<a1>>

\procedure pp2() <$parameters a1><<a1>></$parameters>

\procedure pp3()
\parameters(a1)
<<a1>>
\end

\procedure wp1(a1)  <<a1>>

\widget wp2() <$parameters a1><<a1>></$parameters>

\widget wp3()
\parameters(a1)
<<a1>>
\end

|<<pp1 foo>>|<<pp2 foo>>|<<pp3 foo>>|
|<<wp1 foo>>|<<wp2 foo>>|<<wp3 foo>>|

\function

\function fp1(a1)  [<a1>]
|<<fp1 foo>>|

Behaviour of invoked variables depends on how the variable was declared

Invoked in normal wikitext context: <$transclude $variable=macro/> or <<macro>>

how declaredbehaviour
\defineAll wikitext and variable substitution and textual substitution takes place
$set, $let, $vars, \procedure, \widgetAll wikitext and variable substitution takes place
\functionInvoking a function in this way (<<macro>>) is a synonym for <$text text={{{[function[macro]]}}}/>. As with any filtered transclusion (i.e. triple curly braces), all results except the first are discarded

Invoked via widget attribute: <div class=<<macro>>/>

how declaredbehaviour
\defineTextual substitution of parameters is performed on the body text. No further processing takes place. The result after textual substitution is used as the attribute's value
$set, $let, $vars, \procedure, \widgetBody text is retrieved as-is and used as the attribute's value.
\functionWhen a function is invoked as <div class=<<macro>>/>, it is a synonym for <div class={{{[function[macro]]}}}/>. As with any filtered transclusion (i.e. triple curly braces), all results except the first are discarded. That first result is used as the attribute's value. Note that functions are recursively processed even when invoked in this form. In other words a filter expression in a function can invoke another function and the processing will continue

Invoked via filter operator parameter: [<macro>]

how declaredbehaviour
\defineTextual substitution of parameters is performed on the body text. No further processing takes place. The result after textual substitution is used as the filter operator's parameter.
$set, $let, $vars, \procedure, \widgetBody text is retrieved as-is and used as the filter operator's parameter.
\functionThe body text of the function is treated as a filter expression and evaluated. The first result is passed to the operator as a parameter. The remaining results are discarded.

Invoked via function call in a filter expression: [function[macro]]

how declaredbehaviour
\define, $set, $let, $vars, \procedure, \widgetEvery function is a variable, but only variables defined using \function are invokable using the function filter operator. Attempts to use a non-function variable is the same as if the function doesn't exist. The behavior in this case is like the identity function. All filter input is passed unchanged to the output.
\functionThe body text of the function is treated as a filter expression and evaluated. This filter expression can itself contain a function call. Filter expressions can be factored out into functions arbitrarily deep.

Examples

Below is an example macro, procedure and function definition. All three forms of parameter substitution $a1$, <<__a1__>>, and <<a1>> are included in each definition. The output helps illustrate when each form of substitution will or will not have affect.

\define m1(a1) $a1$ - <<__a1__>> - <<a1>>
\procedure p1(a1) $a1$ - <<__a1__>> - <<a1>>
\function f1(a1) $a1$ "-" [<__a1__>] ="-" [<a1>] :and[join[ ]]
Variable transclusionoutput
<<m1 foo>>foo - foo -
<<p1 foo>>$a1$ - - foo
<<f1 foo>>$a1$ - - foo
Widget attributeoutput
<$text text=<<m1 foo>>/>foo - <<__a1__>> - <<a1>>
<$text text=<<p1 foo>>/>$a1$ - <<__a1__>> - <<a1>>
<$text text=<<f1 foo>>/>$a1$ - - foo
Filter operator parameteroutput
[<m1 foo>]foo - <<__a1__>> - <<a1>>
[<p1 foo>]$a1$ - <<__a1__>> - <<a1>>
[<f1 foo>]$a1$ - - foo
Function call in filter expressionoutput
[function[m1],[foo]]"A free, open source wiki revisited" by Mark Gibbs, NetworkWorld
[function[p1],[foo]]"A free, open source wiki revisited" by Mark Gibbs, NetworkWorld
[function[f1],[foo]]$a1$ - - foo

Namespaces

  • tiddler titles - tiddlers are uniquely identified by their title. The namespace for tiddler titles and variable names are completely separate.
  • variables - \define, $set, $let, $vars, \procedure, \widget, \function all create variables. If the same name is used, then later define will overwrite earlier defined
  • function filter operator parameter - only variables defined using \function can be called using the function operator
  • filter operators - only the javascript defined filter operators and variables defined using \function with name containing a dot can be called
  • widgets - variables defined using \widget can be invoked using <$widget/> syntax ONLY if the name starts a dollar sign. Without the dollar sign prefix, defining variables using \widget is no different than using \procedure.

Variables

 22 juin 2015 à 12h27

Une variable est une portion de texte accessible par son nom via une branche particulière de l'arbre widget. La portion reconnue est la valeur de la variable.

Une nouvelle variable est définie par le widget $set, et ainsi accessible à tous les descendants du widget, incluant les contenus tranclus. Un widget $set peut utiliser un nom existant et relier ainsi, une portion différente à ce nom pour cette génération de descendants du widget.

Le widget $list affecte aussi une variable particulière (par défaut currentTiddler), tour à tour, à chaque titre listé.

Pour une vue d'ensemble quand à l'utilisation des variables, se reporter à variables dans Wikitexte .

Malgré le mot "variable", chaque portion contient une chaine constante. L'apparente variabilité est actuellement reflétée par la présence de plusieurs variables portant le même nom en différents endroits de l'arbre widget.

WikiTexte n'analyse pas les portions en elles-mêmes. Cependant la référence à une variable peut être transcluse dans un contexte où une analyse WikiText parsing may pourrait s'effectuer. Dans une portion de code, le seul marquage détecté est $name$ pour le paramètre de transclusion d'une macro et $(name)$ pour une variable à transclure.

La macro dumpvariables liste toutes les variables (y compris les macros) disponibles à une position donnée de l'arbre widget.

Le noyau de TiddlyWiki intègre plusieurs variables.

Les variables en WikiTexte

 22 avril 2022 à 15h08

Voir aussi une introduction au concept de variables.

Pour transclure la valeur d'une variable, utilisez la syntaxe d'appel de macro sans paramètres. Vous pouvez aussi utiliser un widget $macrocall.

Le code de définition d'une macro peut contenir une ZoneRéservée $(nom)$ où la valeur d'une variable remplacera son nom.

La valeur d'une variable peut être utilisée comme paramètre de filtre, ou comme attribut de widget. Ce dernier cas prend en charge les paramètres de macro.

Exemple : définition d'une variable

<$set name=animal value=zèbre>
<<animal>>
</$set>

Exemple : définition d'une macro

Le pragma \define ci-dessous définit une macro nommée tags-of-current-tiddler. La macro renvoie la valeur du champ tags du tiddler, et peut être appelé partout dans le tiddler (ou dans tout tiddler qui l'importe).

\define tags-of-current-tiddler() {{!!tags}}
Les tags sont<<:>> <<tags-of-current-tiddler>>

Exemple : utilisation de variables comme paramètres de filtre

Cet exemple utilise l'opérateur backlinks pour lister tous les tiddlers contenant des liens vers celui-ci.

<<list-links filter:"[<currentTiddler>backlinks[]]">>

variables Operator

 30 mars 2019 à 10h01
purposeselect the names of all the actively defined variables
inputignored
parameternone
outputthe names of all the actively defined variables

Learn more about how to use Filters

Depuis : 5.1.20 The primary purpose of the variables operator is to implement the dumpvariables Macro:

\define dumpvariables()
\whitespace trim
<ul>
<$list filter="[variables[]]" variable="varname">
<li>
<strong><code><$text text=<<varname>>/></code></strong>:<br/>
<$codeblock code={{{ [<varname>getvariable[]] }}}/>
</li>
</$list>
</ul>
\end

Examples

variables Operator (Examples)

 30 mars 2019 à 10h01

[variables[]prefix[colour]]
→ returns the names of any variables whose names start with colour

variance Operator

 26 avril 2021 à 14h15
purposetreating each input title as a number, compute their variance
inputa selection of titles
outputthe variance of the input as numbers

Learn more about how to use Filters

Depuis : 5.2.0 See Mathematics Operators for an overview.

The standard-deviation operator treats the input as a complete population and not a sample

Examples

variance Operator (Examples)

 26 avril 2021 à 14h15

1 3 4 5 +[variance[]]

Note that if there is no input the operator returns NaN

[title[NotATiddler]is[tiddler]get[price]] +[variance[]]

VarsWidget

 26 avril 2015 à 12h59

Introduction

The $vars widget allows multiple variables to be set in one operation. In some situations it can result in simpler code than using the more flexible $set widget. It differs from the $let in that variables cannot interfere with the evaluation of other variables within the same $vars.

Content and Attributes

The content of the $vars widget is the scope for the value assigned to the variable.

AttributeDescription
{attributes not starting with $}Each attribute name specifies a variable name. The attribute value is assigned to the variable

Attributes will not interfere with the evaluation of other attributes. So if one attribute sets currentTiddler, and another attribute uses currentTiddler in its evaluation, it will use the value of currentTiddler that exists outside the widget's scope.

Examples

Consider a case where you need to set multiple variables.

Using the $vars widget, this situation may be handled in the following way:

\define helloworld() Hello world!

<$vars greeting="Hi" me={{!!title}} sentence=<<helloworld>>>
  <<greeting>>! I am <<me>> and I say: <<sentence>>
</$vars>

In contrast, here is the same example using the $set widget:

<$set name="greeting" value="Hi" >
<$set name="me" value={{!!title}} >
<$set name="sentence" value=<<helloworld>> >
  <<greeting>>! I am <<me>> and I say: <<sentence>>
</$set>
</$set>
</$set>

Remarks

It should be noted that this widget differs from the $set widget in the following ways:

  • A fallback (also known as "emptyValue") cannot be specified
  • Filters cannot be used to produce a conditional variable assignment
  • Variable names must be literal strings

VerboseCommand

 

Bascule les informations en mode verbeux, pratique pour le débogage.

--verbose

version Macro

 21 février 2015 à 21h41

The version macro returns the current version number of TiddlyWiki.

Parameters

(none)

Exemples

version Macro (Examples)

 21 février 2015 à 21h41

Version number: <<version>>

VersionCommand

 

Affiche le numéro de version de TiddlyWiki.

--version

Videos

 19 septembre 2014 à 17h12

View Template Body Cascade

 6 décembre 2021 à 16h16

The view template body cascade is a cascade used by the default view template to choose the template for displaying the tiddler body.

The default view template body cascade consists of:

  1. If the tiddler title starts with any of a list of known system tiddler prefixes, use the template $:/core/ui/ViewTemplate/body/code to display the body as preformatted code
  2. If the tiddler has the field plugin-type set to import then use the template $:/core/ui/ViewTemplate/body/import which displays the custom import user interface
  3. If the tiddler has the field plugin-type then use the template $:/core/ui/ViewTemplate/body/plugin to display the plugin information badge
  4. If the tiddler has the field hide-body set to yes then use the template $:/core/ui/ViewTemplate/body/blank to hide the body
  5. Otherwise, use the default template $:/core/ui/ViewTemplate/body/default

You can see the current settings for the view template body cascade in $:/ControlPanel under the Info -> Advanced -> Cascades -> View Template Body tab.

View Template Title Cascade

 6 décembre 2021 à 16h11

The view template title cascade is a cascade used by the default view template to choose the template for displaying the tiddler title.

The core view template title cascade can be found in $:/core/ui/ViewTemplate/title

The default view template title cascade consists of:

  1. If the tiddler title starts with $:/ then use the template $:/core/ui/ViewTemplate/title/system which causes the $:/ prefix to be displayed in pale text
  2. Otherwise, use the template $:/core/ui/ViewTemplate/title/default which displays the title in plain text

You can see the current settings for the view template title cascade in $:/ControlPanel under the Info -> Advanced -> Cascades -> View Template Title tab.

Widget view

 20 juin 2015 à 8h56

Introduction

Le widget view affiche le contenu du champ d'un tiddler dans un format spécifié.

Contenu et Attributs

Le contenu du widget <$view> est affiché si le champ ou une propriété est vide ou manquante.

AttributDescription
tiddlerLe titre du tiddler (par défaut du tiddler courant)
fieldLe nom du champ à afficher (par défaut "texte")
indexLe nom de l'index à afficher
formatLe format d'affichage du champ (voir ci-dessous)
templateUne chaine de gabarit optionnelle utilisée avec certains formats comme les dates
subtiddlerLe titre d'un SubTiddler optionnel quand le tiddler cible est un plugin (voir ci-dessous)

Formats

Les formats suivants peuvent être spécifiés dans l'attribut format  :

FormatDescription
texttext brut
htmlwikifiedLe champ est wikifié et la résultante HTML retourné comme du texte brut
htmlencodedLe champ est affiché jusqu'à l'encodage HTML
dateLe champ est interprété comme une date UTC date et affiché selon le format de date spécifié dans l'attribut template
relativedateLe champ est interprété comme une date UTC date et affiché comme un intervalle au moment présent
stripcommentsLe champ est considéré comme du code source JavaScript et toutes les lignes commençant par \\# sont écartées
jsencodedLe champ est affiché comme une chaine encodée en JavaScript

Accès au SubTiddler

Le widget view permet l'accès aux tiddlers individuels stockés dans un plugin.

L'exemple suivant montre la version originale du tiddler $:/DefaultTiddlers même s'il a été remplacé :


<$view tiddler="$:/core" subtiddler="$:/DefaultTiddlers"/>

Affichera ceci :

GettingStarted

vis.js Timeline by emkay, revived by kixam

 6 janvier 2021 à 15h10

An interactive timeline visualisation plugin based on Vis.js. A demo can be found here: http://kixam.github.io/TW5-visjsTimeline/.

vis.js Timeline is a TiddlyWiki plugin that allows you to link your wiki-topics (tiddlers) in order to create clickable timelines. This project is a direct continuation of emkay's plugin.

Visible Transclusions

 19 avril 2023 à 11h31

Visible Transclusions

Block transclusions are shown in red, and inline transclusions are shown in green.

Web Developer Tools

 20 novembre 2020 à 15h46

Most browsers provide Web Developer Tools that include a JavaScript console. In Chrome and Firefox it can be opened via the Tools menu, or by pressing Ctrl + Shift + J (Cmd + Shift + J on a Mac).

WebServer

 16 décembre 2018 à 18h19

When running under Node.js, TiddlyWiki includes a simple HTTP/HTTPS web server that allows you to use it from any browser running on the same machine or over a network.

The web server includes a very simple mechanism allowing multiple users to log in with different credentials. The implementation is designed to be simple and easy to use, and would not generally be considered robust enough for use on the open internet. It is intended for use by individuals or small groups on a trusted network. It is recommended to use an external proxy before exposing it on the Internet.

How It Works

The web server listens for requests coming over the network, and performs the following actions in turn:

  • Authentication is the process of identifying the current user. TiddlyWiki supports three types of authentication: Anonymous, Basic and Header
  • Authorization is the process of determining which resources may be accessed by a particular user. TiddlyWiki implements a simple scheme whereby read and write access to the wiki can be independently controlled.
  • Routing is the process of dispatching the request to the API handler, and returning any required data.

Usage

Anonymous Access

The web server is started with the ListenCommand (which supersedes the older ServerCommand). All the NamedCommandParameters are optional, so the simplest form is:

tiddlywiki mywikifolder --listen

Visit http://127.0.0.1:8080/ to access the wiki. Access is anonymous, so anyone can read or write to the wiki.

This will typically be available only to users on the local machine. For information on how to open the instance to the local network see the Web Server host parameter entry.

Authenticated Access

Adding username and password parameters enforces basic authentication for both reading and writing:

tiddlywiki mywikifolder --listen username=test password=tset

Visiting the wiki will prompt for a username and password, and access is denied if they do not match the provided credentials.

Anonymous Read, Authenticated Write

This example adds the authorization parameters readers and writers to grant read access to anonymous users, but require authentication as "joe" in order to gain write access.

Note that anonymous users can trigger a username/password prompt by visiting the route \login-basic (eg http://127.0.0.1:8080/login-basic).
tiddlywiki mywikifolder --listen "readers=(anon)" writers=joe username=joe password=bloggs

Note the double quotes that are required for parameters containing special characters.

Arguments

The full list of available optional parameters is:

Guides

Further information on usage of the integrated WebServer:

WebServer Anonymous Access

 1 juillet 2018 à 21h23

Anonymous access is only permitted if the special (anon) token is present in the readers (for reading) and optionally writers (for writing) authorisation parameters.

WebServer API

 2 octobre 2018 à 14h18

WebServer API: Delete Tiddler

 18 avril 2021 à 11h07

Delete a tiddler

DELETE /bags/default/tiddlers/{title}

Parameters:

  • title - URI encoded title of the tiddler to delete

Headers:

Response:

  • 204 No Content

WebServer API: Force Basic Authentication Login

 16 décembre 2018 à 18h19

Forces the server to request basic authentication login, and then redirects to the root

GET /login-basic

Requests an basic authentication from the browser, and redirects to the root if successful.

Parameters:

  • none

Response:

  • 302 Found
    Location: /
  • 401 Unauthorized
    WWW-Authenticate: Basic realm="Please provide your username and password to login to <servername>"

WebServer API: Get All Tiddlers

 9 septembre 2022 à 10h43

Gets an array of all raw non-system tiddlers, excluding the text field.

GET /recipes/default/tiddlers.json

Parameters:

  • filter - filter identifying tiddlers to be returned (optional, defaults to "[all[tiddlers]!is[system]sort[title]]")
  • exclude - comma delimited list of fields to excluded from the returned tiddlers (optional, defaults to "text")

In order to avoid denial of service attacks with malformed filters in the default configuration the only filter that is accepted is the default filter "[all[tiddlers]!is[system]sort[title]]"; attempts to use any other filter will result in an HTTP 403 error.

Note
System tiddlers will not be returned by this API unless the Hidden Setting: Sync System Tiddlers From Server is explicitly switched on by setting $:/config/SyncSystemTiddlersFromServer to yes

To enable a particular filter, create a tiddler with the title "$:/config/Server/ExternalFilters/" concatenated with the filter text, and the text field set to "yes". For example, the TiddlyWeb plugin includes the following shadow tiddler to enable the filter that it requires:

title: $:/config/Server/ExternalFilters/[all[tiddlers]] -[[$:/isEncrypted]] -[prefix[$:/temp/]] -[prefix[$:/status/]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] -[[$:/library/sjcl.js]] -[[$:/core]]
text: yes

It is also possible to configure the server to accept any filter by creating a tiddler titled $:/config/Server/AllowAllExternalFilters with the text "yes". This should not be done for public facing servers.

Response:

WebServer API: Get Favicon

 2 octobre 2018 à 13h41

Get the favicon for the wiki from the tiddler $:/favicon.ico

GET /favicon.ico

Parameters:

  • none

Response:

  • 200 OK
    Content-Type: image/x-icon
    Body: image data from the tiddler $:/favicon.ico

WebServer API: Get File

 2 octobre 2018 à 13h43

Get the content of a static file. See using the integrated static file server

GET /files/<pathname>

Parameters:

  • pathname - URI encoded path to the file

Response:

  • 200 OK
    Content-Type: <content-type> (determined from file extension)
    Body: data retrieved from file
  • 403 Forbidden
  • 404 Not Found

WebServer API: Get Rendered Tiddler

 2 octobre 2018 à 14h54

Gets a rendering of the specified tiddler. See using the read-only single tiddler view for more details.

GET /{title}

Parameters:

  • title - URI encoded title of the tiddler to render

Response:

  • 200 OK
    Content-Type: <content-type>
    Body: tiddler rendering
  • 404 Not Found

WebServer API: Get Server Status

 2 octobre 2018 à 13h58

Get server status information

GET /status

Parameters:

  • none

Response:

  • 200 OK
    Content-Type: application/json
    Body: see below

The JSON data returned comprises the following properties:

  • username - the username of the currently authenticated user. If undefined, the WebServer Parameter: anon-username is returned instead
  • anonymous - true if the current user is anonymous
  • read_only - true if the current user is restricted to read only access to the server
  • logout_is_available - true if the server supports logging out (optional, defaults to true)
  • space - always contains the object {recipe: "default"}
  • tiddlywiki_version - the current TiddlyWiki version

For example:

{
  "username": "",
  "anonymous": true,
  "read_only": false,
  "space": {
    "recipe": "default"
  },
  "tiddlywiki_version": "5.1.18"
}

WebServer API: Get Tiddler

 2 octobre 2018 à 14h04

Gets the raw fields of a tiddler

GET /recipes/default/tiddlers/{title}

Parameters:

  • title - URI encoded title of the tiddler to retrieve

Response:

WebServer API: Get Wiki

 2 octobre 2018 à 13h47

Get the main wiki

GET /

The wiki is composed by rendering the tiddler identified in the root-tiddler parameter with the render type in the root-render-type parameter. This is then served with the content type from the root-serve-type parameter.

Parameters:

  • none

Response:

  • 200 OK
    Content-Type: text/html
    Body: data retrieved from file

WebServer API: Put Tiddler

 18 avril 2021 à 11h07

Saves the raw fields of a tiddler

PUT /recipes/default/tiddlers/{title}

The body should be in TiddlyWeb JSON tiddler format.

Parameters:

  • title - URI encoded title of the tiddler to save

Headers:

Response:

  • 204 No Content
    Content-Type: text/plain
    Etag: "default/<title>/<changecount>:"

WebServer Authentication

 1 juillet 2018 à 19h45

Authentication is the process of identifying the current user. TiddlyWiki supports three types of authentication:

  • Anonymous Access allows any user to access resources without requiring authentication. Optionally, a username can still be specified for signing edits
  • Basic Authentication requires the user to enter a username and password combination which TiddlyWiki validates against an internal database of credentials
  • Header Authentication requires an external proxy to place the username of the current user in a trusted header of the request. It is often used as the basis of "single sign-on" features

WebServer Authorization

 22 novembre 2021 à h41

Authorization is the process of determining which resources may be accessed by a particular user. It occurs after authentication has determined the identity of the user. TiddlyWiki's WebServer implements a simple authorization scheme which permits independent control of who has administrator access to the server, and read and write access to a wiki.

The WebServer parameters admin, readers and writers each contain a comma separated list of principals (which is to say, either usernames or certain special tokens) which should have read or write access respectively.

The available special tokens are:

  • (anon) - indicates all anonymous users
  • (authenticated) - indicates all authenticated users

Admin Functions

The (anon) token is not valid for the admin parameter.

At this time, no server functions are restricted to admin authorized users in the unmodified Tiddlywiki server. Third party plugins can leverage this to restrict routes or commands to a subset of authorized users.

Read-only Mode

Read-only mode is engaged when the current user is not authorized to write to the current wiki.

User interface features concerned with creating or editing content are disabled in read-only mode:

  • clone, delete, new-here and new-journal-here tiddler toolbar buttons
  • import, manager, new-tiddler new-image and new-journal page control buttons

The tiddler $:/status/IsReadOnly is set to yes when read-only mode is engaged.

Examples

These example use the credentials parameter to specify the location of a file containing usernames and passwords.

In the first example, read access is permitted for the users "joe" and "mary", with write access restricted to "mary":

tiddlywiki mywikifolder --listen credentials=myusers.csv readers=joe,mary writers=mary

In the following example, read access is granted to all authenticated users, but only "mary" is granted write access:

tiddlywiki mywikifolder --listen credentials=myusers.csv "readers=(authenticated)" writers=mary

In the following example, read and write access is granted to all authenticated users, but only "mary" is granted admin access:

tiddlywiki mywikifolder --listen credentials=myusers.csv "readers=(authenticated)" "writers=(authenticated)" admin=mary

WebServer Basic Authentication

 16 décembre 2018 à 18h19

Basic authentication is a standard mechanism for servers to instruct browsers to prompt the user for credentials. It is recommended to use it in association with HTTPS due to the way that it passes unencrypted passwords over the network.

Basic authentication is activated if credentials are specified via the username/password or credentials parameters.

If WebServer Authorization is configured to allow access by both anonymous and authenticated users then by default users will not be prompted for credentials, and will be given anonymous access. To force a password prompt visit the route /login-basic (for example, http://127.0.0.1:8080/login-basic).

WebServer Guides

 3 juillet 2018 à 10h47

WebServer Header Authentication

 2 juillet 2018 à 15h02

Header authentication is a web integration technique enabling external entities to securely pass details of the authenticated user to an application.

Header authentication is activated if is configured via the authenticated-user-header

Usage in SSO

Header authentication is commonly used for "single sign on" in corporate environments. When doing header authentication, the user is not prompted for a username and password on TiddlyWiki. Instead, the user is required to login at a SSO proxy server. When the user authenticates themselves to the SSO proxy server, the proxy server redirects the user request to the TiddlyWiki server with this additional request header containing the username. Then TiddlyWiki server is able to use the value of this request header to identify the user.

WebServer Parameter: admin

 11 novembre 2021 à 2h31

Depuis : 5.2.2 The web server configuration parameter admin is used to specify the security principals with administrator access to the WebServer. Does not accept the (anon) special token. See WebServer Authorization for more details.

WebServer Parameter: anon-username

 2 juillet 2018 à 13h48

The web server configuration parameter anon-username provides an optional username for signing edits from anonymous users.

Without this parameter, anonymous users will be given a blank username.

WebServer Parameter: authenticated-user-header

 22 mai 2023 à 19h44

The web server configuration parameter authenticated-user-header activates header authentication by specifying the name of the HTTP header field that will be used to pass the username to TiddlyWiki.

For example, if the authenticated-user-header is set to X-Authenticated-User, then the HTTP request must include a header field X-Authenticated-User with a value that is the username:

X-Authenticated-User: JeremyRuston

Depuis : 5.3.0 Value of this header field should be URI-encoded before transit on the client (using encodeURIComponent JS function or encodeuricomponent Operator), and will be URI-decoded by the server.

WebServer Parameter: credentials

 2 juillet 2018 à 16h44

The web server configuration parameter credentials contains the pathname of a CSV file containing a list of username/password combinations. Using the credentials parameter activates WebServer Basic Authentication.

The CSV file must contain a header row and columns labelled username and password. For example:

username,password
jane,do3
andy,sm1th
roger,m00re

Notes:

  • The optional username/password parameters may be used to provide an additional single set of credentials
  • The pathname is taken relative to the wiki folder
  • Passwords cannot contain the comma character ,
  • The header row must be present

WebServer Parameter: csrf-disable

 19 avril 2019 à 18h13

The web server configuration parameter csrf-disable causes the usual cross-site request forgery checks to be disabled. This might be necessary in unusual or experimental configurations.

Setting csrf-disable to yes disables the CSRF checks; no (or any other value) enables them.

The only currently implemented check is the use of a custom header called x-requested-with that must contain the string TiddlyWiki in order for write requests to succeed.

WebServer Parameter: debug-level

 2 juillet 2018 à 15h21

The web server configuration parameter debug-level determines the level of debugging information printed to the console:

  • full - maximum logging
  • none - no logging

WebServer Parameter: host

 7 novembre 2018 à 18h31

The web server configuration parameter host is the IP address on which the server listens. The most common settings are:

  • 127.0.0.1 (default) - only listens for connections from browsers on the same computer
  • 0.0.0.0 - listens for connections on all network interfaces, and thus from any browser on a reachable network
  • n.n.n.n - listens for connections on the network interface with the specified IP address

Note: Using 0.0.0.0 or n.n.n.n in a public environment (e.g. coffee shop, library, airport) is inadvisable as it will expose your system to possible intrusion.

WebServer Parameter: password

 30 juin 2018 à 18h11

The web server configuration parameter password, is used with its companion username as a shortcut for setting user credentials for WebServer Basic Authentication.

WebServer Parameter: path-prefix

 27 octobre 2020 à 12h29

The web server configuration parameter path-prefix can be used to set an optional prefix for all paths served.

This example causes the server to serve from http://127.0.0.1/MyApp instead of the default http://127.0.0.1/.

tiddlywiki mywikifolder --listen "path-prefix=/MyApp"

Notes:

  • Further steps are required to configure the client-side components to use the prefix. See Using a custom path prefix with the client-server edition
  • If no path prefix is required then the path-prefix parameter should be omitted or set to the empty string, and not to \ as might be expected

WebServer Parameter: port

 19 décembre 2019 à 12h37

The web server configuration parameter port specifies the TCP port on which the server will listen for connections. The default value is 8080.

The port parameter accepts two types of value:

  • Numerical values are interpreted as a decimal port number
    • The special value 0 (zero) causes the operating system to assign an available port
  • Non-numeric values are interpreted as an environment variable from which the port should be read

This example configures the server to listen on port 8090:

tiddlywiki mywikifolder --listen port=8090

This example configures the server to listen on the port specified in the environment variable THE_PORT:

tiddlywiki mywikifolder --listen port=THE_PORT

WebServer Parameter: readers

 2 juillet 2018 à 16h51

The web server configuration parameter readers is used to specify the security principals with read access to the wiki. See WebServer Authorization for more details.

WebServer Parameter: required-plugins

 26 décembre 2021 à 16h07

Depuis : 5.2.2 The web server configuration parameter required-plugins is used to specify the plugins required to start the WebServer. It take a comma seperated list of plugin titles. The WebServer will issue a warnign in the console if the required plugins are not loaded. This parameter defaults to $:/plugins/tiddlywiki/filesystem,$:/plugins/tiddlywiki/tiddlyweb.

WebServer Parameter: root-render-type

 2 juillet 2018 à 17h04

The web server configuration parameter root-render-type determines the way that the root wiki tiddler is rendered:

  • text/plain (default) – the plain text content of the output is rendered (i.e. HTML elements are ignored)
  • text/html – the full HTML content of the output is rendered (i.e. including HTML elements)

WebServer Parameter: root-serve-type

 2 juillet 2018 à 17h05

The web server configuration parameter root-serve-type determines the content type with which the root wiki tiddler is rendered. The default is text/html.

WebServer Parameter: root-tiddler

 2 juillet 2018 à 17h06

The web server configuration parameter root-tiddler determines the title of the tiddler that is rendered as the root wiki. The default setting is $:/core/save/all.

WebServer Parameter: system-tiddler-render-template

 10 août 2018 à 6h31

The web server configuration parameter system-tiddler-render-template is used to specify the template for serving system tiddlers in the read-only single tiddler view. The default value is $:/core/templates/wikified-tiddler which renders the tiddler raw, without any special viewing template.

This setting may be overwritten by specifying the _render_template field of a tiddler.

WebServer Parameter: system-tiddler-render-type

 10 août 2018 à 6h31

The web server configuration parameter system-tiddler-render-type is used to specify the render type for serving system tiddlers in the read-only single tiddler view. The default value is text/plain, causing the raw text of rendered system tiddlers to be returned. Alternatively, text/html can be used to cause the full HTML of the rendered tiddlers to be returned.

This setting may be overwritten by specifying the _render_type field of a tiddler.

WebServer Parameter: tiddler-render-template

 10 août 2018 à 6h32

The web server configuration parameter tiddler-render-template is used to specify the template for serving ordinary, non-system tiddlers in the read-only single tiddler view. The default value is $:/core/templates/server/static.tiddler.html which renders tiddlers in a lightweight page with a simple sidebar.

This setting may be overwritten by specifying the _render_template field of a tiddler.

WebServer Parameter: tiddler-render-type

 10 août 2018 à 6h31

The web server configuration parameter tiddler-render-type is used to specify the render type for serving ordinary, non-system tiddlers in the read-only single tiddler view. The default value is text/html, causing the full HTML of the rendered output to be returned. Alternatively, text/plain can be used to cause the raw text of rendered system tiddlers to be returned.

This setting may be overwritten by specifying the _render_type field of a tiddler.

WebServer Parameter: tls-cert

 3 juillet 2018 à 11h06

The optional web server configuration parameter tls-cert contains the pathname to the certificate file required when running the web server under HTTPS. The pathname is taken relative to the wiki folder.

See Using HTTPS for details.

WebServer Parameter: tls-key

 3 juillet 2018 à 11h06

The optional web server configuration parameter tls-key contains the pathname to the key file required when running the web server under HTTPS. The pathname is taken relative to the wiki folder.

See Using HTTPS for details.

WebServer Parameter: tls-passphrase

 11 novembre 2021 à 2h21

Depuis : 5.2.2 The optional web server configuration parameter tls-passphrase contains the "certificate passphrase", a string used to decrypt the certificate file used when running the web server under HTTPS.

See Using HTTPS for details.

WebServer Parameter: username

 2 juillet 2018 à 13h46

The web server configuration parameter username, in conjunction with its companion password:

  • Enables Basic Authentication with the specified username/password combination being added to any credentials specified with the credentials parameter
  • The specified username is used as a default value for the readers and writers authorisation parameters if they are not specified

Examples

Serve anonymous users, setting the username to "joe":

tiddlywik mywikifolder --listen anon-username=joe

Restrict access to the user "joe" with a password of "secret":

tiddlywik mywikifolder --listen username=joe password=secret

WebServer Parameter: writers

 2 juillet 2018 à 16h51

The web server configuration parameter writers is used to specify the security principals with write access to the wiki. See WebServer Authorization for more details.

WebServer Parameters

 30 juin 2018 à 18h09

Wednesday

 16 novembre 2021 à 22h11

This example tiddler is used to illustrate some of the Filter Operators.

Qu'est-il arrivé au TiddlyWiki d'origine ?

 3 juin 2016 à 5h36

La version originale de TiddlyWiki est toujours disponible à l'adresse :

https://classic.tiddlywiki.com.

Il faut savoir que la version courante de TiddlyWiki n'est pas entièrement rétro-compatible avec TiddlyWikiClassic. Le contenu peut être importé mais devra être ajusté pour s'adapter au nouveau format WikiText. Un plugin tw2parser permettant d'afficher fidèlement la plupart des contenus créés avec TiddlyWikiClassic est en cours de développement :

https://tiddlywiki.com/plugins/tiddlywiki/tw2parser/

Widdly by Opennota

 6 janvier 2021 à 15h10

A cross platform server application that can save tiddlers to a local database

https://gitlab.com/opennota/widdly

a minimal self-hosted app, written in Go, that can serve as a backend for a personal TiddlyWiki.

Widget Attributes

 31 juillet 2023 à 22h06

Attributes of HTML elements and widgets can be specified in several different ways:

attribute typesyntax
literalsingle, double or triple quotes or no quotes for values without spaces
transcludeddouble curly braces around a text reference
variabledouble angle brackets around a macro or variable invocation
filteredtriple curly braces around a filter expression
substitutedsingle or triple backticks around the text to be processed for substitutions

Literal Attribute Values

Literal attribute values can use several different styles of quoting:

  • Single quotes (eg attr='value')
  • Double quotes (eg attr="value")
  • Tripe double quotes (eg attr="""value""")
  • No quoting is necessary for values that do not contain spaces (eg attr=value)

Literal attribute values can include line breaks. For example:

<div data-address="Mouse House,
Mouse Lane,
Rodentville,
Ratland."/>

By using triple-double quotes you can specify attribute values that contain single double quotes. For example:

<div data-address="""Mouse House,
"Mouse" Lane,
Rodentville,
Ratland."""/>

Transcluded Attribute Values

Transcluded attribute values are indicated with double curly braces around a TextReference. For example:

attr={{tiddler}}
attr={{!!field}}
attr={{tiddler!!field}}

The value of the attribute value will be the exact text retrieved from the TextReference. Any wiki syntax in that text will be left as-is.

Variable Attribute Values

Variable attribute values are indicated with double angle brackets around a macro invocation. For example:

<div title=<<MyMacro "Brian">>>
...
</div>

The behaviour of variables invoked via widget attributes is not the same as when they are invoked via normal wikitext. In addition, the behaviour depends on how the variable is declared:

how declaredbehaviour
\defineTextual substitution of parameters is performed on the body text. No further processing takes place. The result after textual substitution is used as the attribute's value
$set, $let, $vars, \procedure, \widgetBody text is retrieved as-is and used as the attribute's value.
\functionWhen a function is invoked as <div class=<<macro>>/>, it is a synonym for <div class={{{[function[macro]]}}}/>. As with any filtered transclusion (i.e. triple curly braces), all results except the first are discarded. That first result is used as the attribute's value. Note that functions are recursively processed even when invoked in this form. In other words a filter expression in a function can invoke another function and the processing will continue

Filtered Attribute Values

Filtered attribute values are indicated with triple curly braces around a Filter Expression. The value will be the first item in the resulting list, or the empty string if the list is empty.

Depuis : 5.2.2 To improve readability, newlines can be included anywhere that whitespace is allowed within filtered attributes.

This example shows how to add a prefix to a value:

<$text text={{{ [<currentTiddler>addprefix[$:/myprefix/]] }}} />

The value of the attribute will be the exact text from the first item in the resulting list. Any wiki syntax in that text will be left as-is.

Substituted Attribute Values

Depuis : 5.3.0

Substituted attribute values can use two different styles of quoting:

  • Single backticks
    attr=`value`
  • Triple backticks
    attr=```value```

The value of the attribute will be the text denoted by the backticks with any of the placeholders for filter expressions and variables substituted with their corresponding values. Filter expression placeholders are substituted before variable placeholders, allowing for further variable substitution in their returned value.

Any other wiki syntax in that text will be left as-is.

placeholder syntaxdescription
$(varname)$Text substitution of a variable. Undefined variables are replaced with an empty string.
${ filter expression }$Text substitution with the first result of evaluating the filter expression.

Examples

Substituting a variable value into a string

<$text text=`Hello there this is the tiddler "Substituted Attribute Values"`/>

Affichera ceci :

Hello there this is the tiddler "Substituted Attribute Values"

Substituting a variable value and the result of evaluating a filter expression into a string

<$text text=`This tiddler is titled "Substituted Attribute Values" and was last modified on ${[{!!modified}format:date[DDth MMM YYYY]]}$`/>

Affichera ceci :

This tiddler is titled "Substituted Attribute Values" and was last modified on 15 juin 2023

Concatenating strings and variables to create a URL


<$let hash={{{ [<currentTiddler>encodeuricomponent[]] }}}>
<a href=`http://tiddlywiki.com/#`>this tiddler on tiddlywiki.com</a>
</$let>

Affichera ceci :

this tiddler on tiddlywiki.com

Concatenating variables and a text reference to create a URL


<$let hash={{{ [<currentTiddler>encodeuricomponent[]] }}}>
<a href=`${ [{!!base-url}] }$#`>this tiddler on tiddlywiki.com</a>
</$let>

Affichera ceci :

this tiddler on tiddlywiki.com

Widget Documentation Style Guide

 25 mars 2023 à 16h25

Widget documentation generally consists of

  • an introductory summary of the widget's function
  • an overview of attributes and how the widget content is handled
  • more detailed attribute explanation when required
  • examples

The Content and Attributes section should describe how the content of the widget is used, followed by a table of the possible attributes, each with a short description of a single sentence. The attribute names in the table and elsewhere in the tiddler should be rendered with the .attr macro. The .from-version macro should be used as first item in the description to designate the version at which a parameter became available.

A subsection should be used for parameters that need an extended description, possibly with separate examples. When there are more than 2 such subsection necessary, the subsections should be split into their own tiddlers, and the .doc-tabs macro should be used to transclude them into the widget documentation tiddler as tabs.

  • The .doc-tabs macro is used without parameters
  • The .doc-tabs macro must not be used more than once within a single documentation tiddler
  • The tiddlers to be included in the tab group should be tagged with the respective widget documentation tiddler and have a description field set to tab
  • The caption contains the tab button text. It should be as short as possible. For the attribute name, the .attr macro should be used in the caption
  • The tab tiddlers should start with a level-2-heading that links to itself, so that they may be opened from within the tabs
  • They can contain examples if these are specific to the topic of the subsection

In the attribute table, the .widget-attr-link macro can be used to turn attributes into a button that activates the respective tab. The .widget-attr-link macro is used like this

<<.widget-attr-link text:<display text> target:<title of corresponding tiddler> >>

Elsewhere, the .doc-tab-link macro can be used to activate the respective tab

<<.doc-tab-link text:<display text> target:<title of corresponding tiddler> tooltip:<tooltip to show when hovering over the button> class:<additional classes> >>

The parameters tooltip and class are optional.

Both link macros scroll to the tab group additionally to setting the selected tab. They can also be used within the tab contents tiddlers themselves. If a tab tiddler is opened outside the tab group, doc-tab-link will open the tiddler containing the tab group if it is not yet open, and scroll to its tab group if it is.

WidgetMessage: tm-add-field

 8 septembre 2014 à 19h51

The tm-add-field message is handled by the FieldManglerWidget. It adds the specified field with a blank value if the field doesn't already exist.

NameDescription
paramName of field to add

The add field message is usually generated with the ButtonWidget, and is handled by the FieldManglerWidget.

WidgetMessage: tm-add-tag

 8 septembre 2014 à 19h51

The tm-add-tag message is handled by the FieldManglerWidget. It adds the specified tag.

NameDescription
paramName of tag to add

The add tag message is usually generated with the ButtonWidget, and is handled by the FieldManglerWidget.

WidgetMessage: tm-auto-save-wiki

 30 août 2014 à 12h51

The autosave wiki message causes the current saver module to perform a background save if it is required.

The autosave wiki message should be generated whenever changes are made to the store. For example, the navigator widget generates the autosave wiki message as part of its handling of the WidgetMessage: tm-save-tiddler, WidgetMessage: tm-delete-tiddler and WidgetMessage: tm-perform-import.

The autosave wiki message is handled by the TiddlyWiki core SyncMechanism which invokes the current SaverModule. Not all SaverModules can handle autosaving.

WidgetMessage: tm-browser-refresh

 26 août 2014 à 12h05

The tm-browser-refresh message refreshes the page, causing the re-initialisation of any plugin tiddlers. It does not require any properties on the event object.

The refresh message is usually generated with the ButtonWidget and is handled by the core.

WidgetMessage: tm-cancel-tiddler

 26 février 2014 à 19h39

The tm-cancel-tiddler message abandons the changes in a draft tiddler. It requires the following properties on the event object:

NameDescription
paramTitle of the tiddler that is being cancelled out of edit mode
tiddlerTitleFallback title that is used if param isn't specified (automatically set by the ButtonWidget)

The cancel tiddler message is usually generated with the ButtonWidget and is handled by the NavigatorWidget.

WidgetMessage: tm-clear-password

 26 février 2014 à 8h49

The tm-clear-password message clears the current password from the password vault, clearing the $:/isEncrypted tiddler. See EncryptionMechanism for details.

This message is typically generated with the ButtonWidget, and is handled by the core itself.

WidgetMessage: tm-close-all-tiddlers

 26 février 2014 à 19h43

The close all tiddlers message empties the story list.

The close all tiddlers message is usually generated with the ButtonWidget and is handled by the NavigatorWidget.

WidgetMessage: tm-close-all-windows

 1 mars 2022 à 18h08

Depuis : 5.2.2

The tm-close-all-windows message closes all additional browser window that were opened with tm-open-window.

The tm-close-window message is best generated with the ActionSendMessageWidget, which in turn is triggered by a widget such as the ButtonWidget. It is handled by the core itself.


<$button>Close All Windows
<$action-sendmessage 
  $message="tm-close-all-windows" 
/>
</$button>

Affichera ceci :

WidgetMessage: tm-close-other-tiddlers

 2 mars 2014 à 18h33

The tm-close-other-tiddlers message removes all but a specified tiddler from the story list. It requires the following properties on the event object:

NameDescription
paramTitle of the tiddler that is not to be closed
tiddlerTitleFallback title that is used if param isn't specified (automatically set by the ButtonWidget)

The close other tiddlers message is usually generated with the ButtonWidget and is handled by the NavigatorWidget.

WidgetMessage: tm-close-tiddler

 26 février 2014 à 19h42

The tm-close-tiddler message removes a specified tiddler from the story list. It requires the following properties on the event object:

NameDescription
paramTitle of the tiddler that is to be closed
tiddlerTitleFallback title that is used if param isn't specified (automatically set by the ButtonWidget)

The close tiddler message is usually generated with the ButtonWidget and is handled by the NavigatorWidget.

WidgetMessage: tm-close-window

 23 juillet 2023 à 23h05

Depuis : 5.2.2

The tm-close-window message closes an additional browser window that was opened with tm-open-window. Specify which window to close by setting the value of param to the string used as windowID when opening the window.

NameDescription
param {default param}String used as windowID when opening the window

The tm-close-window message is best generated with the ActionSendMessageWidget, which in turn is triggered by a widget such as the ButtonWidget. It is handled by the core itself.

When used with the ActionSendMessageWidget, param becomes $param

To close all additional browser windows that were opened with tm-open-window use WidgetMessage: tm-close-all-windows

If the windowID parameter was used with tm-open-window when opening a new window, the value of windowID is available within that window in the variable tv-window-id


<$button>Open Window
<$action-sendmessage 
  $message="tm-open-window" 
  $param="$:/temp/openme" 
  template="SampleWindowTemplate" 
  windowTitle="My Window Title"
  width="400"
  height="500"
  windowID="window1"
  something="I just flew in on a variable, and boy is my Hashmap tired." />
</$button>
<$button>Close Window
<$action-sendmessage 
  $message="tm-close-window" 
  $param="window1" 
/>
</$button>

Affichera ceci :

WidgetMessage: tm-copy-to-clipboard

 15 décembre 2017 à 15h06

The "copy to clipboard" message attempts to copy the specified text to the clipboard. If it succeeds, the tiddler $:/language/Notifications/CopiedToClipboard/Succeeded is displayed as a notification. If the browser doesn't permit the operation, the tiddler $:/language/Notifications/CopiedToClipboard/Failed is displayed instead.

It requires the following properties on the event object:

NameDescription
paramText to be copied to the clipboard

This message is usually generated with the ButtonWidget. It is handled by the TiddlyWiki core.

Example

This example copies the current time to the clipboard:

<$button message="tm-copy-to-clipboard" param=<<now>>>
Copy date to clipboard
</$button>

Affichera ceci :

WidgetMessage: tm-delete-tiddler

 26 février 2014 à 9h04

The tm-delete-tiddler message deletes the specified tiddler and removes it from the current story. If the tiddler is a draft then it also deletes the tiddler specified in the draft.of field. The delete tiddler message requires the following properties on the event object:

NameDescription
paramTitle of the tiddler that is to be deleted
tiddlerTitleFallback title that is used if param isn't specified (automatically set by the ButtonWidget)

The delete tiddler message is usually generated with the ButtonWidget and is handled by the NavigatorWidget.

WidgetMessage: tm-download-file

 23 juillet 2023 à 22h47

The download file message causes the current saver module to prompt the user to download the result of parsing a specified template tiddler as a file. It requires the following properties on the event object:

NameDescription
paramTitle of a tiddler to use as a template for the new tiddler
{any other params}Any other parameters are made available as variables within the context of the widget message.

The following variable names have special behaviour:

NameDescription
filenameFilename for the downloaded file (note that this is a hint to the browser, and the actual filename used may be different)

The download file message is usually generated with the ButtonWidget.

The download file message is handled by the TiddlyWiki core SyncMechanism which invokes the current SaverModule.

WidgetMessage: tm-edit-bitmap-operation

 23 juillet 2023 à 22h47

A tm-edit-bitmap-operation invokes one of the available operations on a surrounding bitmap editor. Therefore the message has to be dispatched within the editor in order for it to catch it. The following properties on the event object are required:

NameDescription
paramName of the operation to be executed, see below for a list of possible operations
{any other params}Any other parameters are made available as variables within the context of the widget message.

The tm-edit-bitmap-operation message is usually generated by a ButtonWidget or an ActionWidget and is handled by the surrounding bitmap editor.

Bitmap Operations

At this point the following bitmap operations have been implemented:

NameDescription
resize

Resizes the image to the specified width and height. Parameters include:

NameDescription
widthSpecifies the width the image is resized to
heightSpecifies the height the image is resized to
clear

Clears the contents of the image and fills it with a solid colour. Parameters include:

NameDescription
colourColour the image should be filled with, defaults to White

The colour field can take any normal CSS colour value, including the hexadecimal representation or the RGB format.

Example

An example can be seen in $:/core/ui/EditorToolbar/size-dropdown:

<$button>
<$action-sendmessage
	$message="tm-edit-bitmap-operation"
	$param="resize"
	width={{$config-title$/new-width}}
	height={{$config-title$/new-height}}
/>
...
Resize
</$button>

WidgetMessage: tm-edit-text-operation

 23 juillet 2023 à 22h46

A tm-edit-text-operation invokes one of the available operations on a surrounding text editor. Therefore the message has to be dispatched within the editor in order for it to catch it. The following properties on the event object are required:

NameDescription
paramName of the operation to be executed, see below for a list of possible operations
{any other params}Any other parameters are made available as variables within the context of the widget message.

The tm-edit-text-operation message is usually generated by a ButtonWidget or an ActionWidget and is handled by the surrounding text editor.

Text Operations

At this point the following text operations have been implemented:

NameDescription
excise

Excises the currently selected text into a new tiddler and replaces it with a link, a macro or a transclude of the new tiddler. Parameters include:

NameDescription
titleTitle of the new tiddler the selected content is excised to
typeType of the replacement to be inserted: Can be one of transclude, link or macro
macroIn case type=macro, specifies the name of the macro to be inserted. The title of the new tiddler is provided as the first parameter to the macro. Defaults to the translink macro
tagnewIf 'yes', will tag the new tiddler with the title of the tiddler currently being edited
replace-all

Replaces all contents of the editor with the provided text.

NameDescription
textText to be inserted
replace-selection

Replaces the current selection with the provided text.

NameDescription
textText to be inserted
prefix-lines

Prefixes the currently selected line(s) with the provided character. If a line is already prefixed by the provided prefix, the prefix is removed instead.

NameDescription
characterPrefix character
countNumber of characters that make up the prefix

Example Setting character="!" and count="3" would insert the prefix "!!!", which will resolve to a subheading when parsed as WikiText.

wrap-lines

Surrounds the selected lines with the provided prefix and suffix.

NameDescription
prefixString to be prefixed to the selected lines
suffixSuffix to be inserted after the selected lines
wrap-selection

Surrounds the current selection with the provided prefix and suffix.

NameDescription
prefixString to be prefixed to the selection
suffixSuffix to be inserted after the selection
save-selection

Saves the text of the current selection into the provided tiddler and field.

NameDescription
tiddlerTiddler title to which the selection will be saved
fieldField name (defaults to "text")
make-link

Creates a wiki text link to the tiddler specified in text. If there is a selection, it is used as the text of the link.

NameDescription
textTiddler title to which the link will be created
insert-text

Inserts the text specified in text at the caret position. If there is a selection, it is replaced.

NameDescription
textText to be inserted
focus-editor Depuis : 5.2.0 Simply focuses the Text Editor

Example

An example can be seen in $:/core/ui/EditorToolbar/bold:

<$action-sendmessage
	$message="tm-edit-text-operation"
	$param="wrap-selection"
	prefix="''"
	suffix="''"
/>

WidgetMessage: tm-edit-tiddler

 26 février 2014 à 9h06

The tm-edit-tiddler message replaces the specified tiddler in the current story with a draft version of itself. It requires the following properties on the event object:

NameDescription
paramTitle of the tiddler that is being switched to edit mode
tiddlerTitleFallback title that is used if param isn't specified (automatically set by the ButtonWidget)

The edit tiddler message is usually generated with the ButtonWidget or the ActionSendMessageWidget and is handled by the NavigatorWidget.

WidgetMessage: tm-focus-selector

 23 juillet 2023 à 22h51

The tm-focus-selector message sets the focus to the DOM element identified by the selector in the param parameter.

NameDescription
paramSelector identifying the DOM element to be focussed
{any other params}Any other parameters to be passed to the focus() method as variables.

Use preventScroll="true" to prevent the browser from scrolling to the focused element

WidgetMessage: tm-fold-all-tiddlers

 28 octobre 2019 à 11h38

The tm-fold-all-tiddlers message folds all tiddlers in the current story list.

Internally, it sets the text of all of the state tiddlers corresponding to tiddlers in the story river to "hide". The state tiddler titles are formed by prefixing the tiddler title with a prefix that defaults to $:/state/folded/.

NameDescription
foldedStatePrefixPrefix for the state tiddler in which the fold state is stored. Defaults to $:/state/folded

The tm-fold-all-tiddlers message is usually generated with the ButtonWidget and is handled by the surrounding NavigatorWidget.

WidgetMessage: tm-fold-other-tiddlers

 28 octobre 2019 à 11h39

The tm-fold-other-tiddlers message folds all tiddlers in the current story list, except the one specified in the param parameter. It does so by setting the text of a state tiddler to either "show" or "hide", according to the fold state.

NameDescription
paramTitle of the tiddler that should be ignored by the fold operation.
foldedStatePrefixPrefix for the state tiddler in which the fold state is stored.

The core uses a foldStatePrefix of $:/state/folded/ to store the fold states for the default story view.

The state tiddlers title is computed as foldStatePrefix + TiddlerTitle. If the foldStatePrefix is not set, it will overwrite the text of the tiddler(s) itself, resulting in data loss.

The tm-fold-other-tiddlers message is usually generated with the ButtonWidget and is handled by the surrounding NavigatorWidget.

WidgetMessage: tm-fold-tiddler

 28 octobre 2019 à 11h35

The tm-fold-tiddler message toggles the value of a state tiddler. It does so by setting the text of a state tiddler to either "show" or "hide", according to the fold state.

NameDescription
paramignored ... foldedState must be used
foldedStateState tiddler in which the fold state is stored

The core uses a foldState prefix of $:/state/folded/ + tiddler title to store the fold states for the default story view.

The tm-fold-tiddler message is usually generated with the ButtonWidget and is handled by the surrounding NavigatorWidget.

The core $:/core/ui/ViewTemplate defines a global variable folded-state, that is used with every tiddler. It's created like this:

\define folded-state()
$:/state/folded/$(currentTiddler)$
\end

WidgetMessage: tm-full-screen

 14 août 2018 à 22h51

The fullscreen message is used to enter, exit or toggle the "fullscreen" mode of the browser, if it supports it. It uses the following properties on the event object:

NameDescription
paramenter to enter full screen mode, exit to exit it, otherwise toggle the full screen status

The fullscreen message is handled by the TiddlyWiki core.

<$button message="tm-full-screen">
Full screen toggle
</$button>

<$button message="tm-full-screen" param="enter">
Full screen enter
</$button>

<$button message="tm-full-screen" param="exit">
Full screen exit
</$button>

Affichera ceci :

WidgetMessage: tm-home

 17 décembre 2014 à 19h30

Le message tm-home ferme tous les tiddlers ouverts et réouvre les tiddlers par défaut définis dans $:/DefaultTiddlers. Il élimine aussi toute trace de permalien de la barre d’adresse du navigateur internet. Il ne requiert aucune propriété dans l’objet event.

Le message est habituellement lancé à travers le ButtonWidget et est pris en charge par le noyau.

WidgetMessage: tm-http-cancel-all-requests

 29 avril 2023 à 17h14

The tm-http-cancel-all-requests message is used to cancel all outstanding HTTP requests initiated with WidgetMessage: tm-http-request.

Note that the state tiddler $:/state/http-requests contains a number representing the number of outstanding HTTP requests in progress.

It does not take any parameters.

WidgetMessage: tm-http-request

 23 juillet 2023 à 22h53

The tm-http-request message is used to make an HTTP request to a server.

It uses the following properties on the event object:

NameDescription
paramNot used
{any other params}Any other parameters are made available as variables within the context of the widget message. See below.

The following parameters are used:

NameDescription
methodHTTP method (eg "GET", "POST")
bodyString data to be sent with the request
binary Depuis : 5.3.1 Set to "yes" to cause the response body to be treated as binary data and returned in base64 format
query-*Query string parameters with string values
header-*Headers with string values
password-header-*Headers with values taken from the password store
password-query-*Query string parameters with values taken from the password store
var-*Variables to be passed to the completion and progress handlers (without the "var-" prefix)
bind-statusTitle of tiddler to which the status of the request ("pending", "complete", "error") should be bound
bind-progressTitle of tiddler to which the progress of the request (0 to 100) should be bound
oncompletionAction strings to be executed when the request completes
onprogressAction strings to be executed when progress is reported

The following variables are passed to the completion handler:

NameDescription
statusHTTP result status code (see MDN)
statusTextHTTP result status text
errorError string
dataReturned data
headersResponse headers as a JSON object

The following variables are passed to the progress handler:

NameDescription
lengthComputableWhether the progress loaded and total figures are valid - "yes" or "no"
loadedNumber of bytes loaded so far
totalTotal number bytes to be loaded

Note that the state tiddler $:/state/http-requests contains a number representing the number of outstanding HTTP requests in progress.

Examples

WidgetMessage: tm-http-request Example - Random Dog

 

Random Dogs

This demo uses the API of the website https://random.dog/ to import a random dog image or video.

Note that the images and videos can be quite large, so this demo is not recommended to be used over mobile data connections.

WidgetMessage: tm-http-request Example - Zotero

 

Specify the Zotero group ID to import or

Outstanding requests:

WidgetMessage: tm-import-tiddlers

 28 février 2015 à 14h36

The tm-import-tiddlers message inserts a list of tiddlers into the pending import tiddler $:/Import. It also applies any active upgrader modules to each tiddler as it arrives (see the UpgradeMechanism for more details).

NameDescription
paramJSON text of the array of tiddlers to be imported
autoOpenOnImport Depuis : 5.1.23 Optional value "no" or "yes" that can override tv-auto-open-on-import
importTitle Depuis : 5.1.23 optional tiddler title to use for import process instead of $:/Import

The import tiddlers message is usually generated with the DropzoneWidget or the BrowseWidget, and is handled by the NavigatorWidget.

Configuration Variables

WidgetMessage: tm-load-plugin-from-library

 25 avril 2016 à h55

The tm-load-plugin-from-library message load the specified tiddler or plugin from the specified plugin library.

NameDescription
titleTitle of the tiddler or plugin to be loaded into the current wiki
urlUrl specifying the plugin library from which the tiddler or plugin is to be loaded.

Example

The following snippet will install the CodeMirror plugin from the official plugin library:

<$button>
<$action-sendmessage $message="tm-load-plugin-from-library" title="$:/plugins/tiddlywiki/codemirror" url="https://tiddlywiki.com/library/v5.1.11/index.html"/>
Install CodeMirror
</$button>

Usually a plugin library has to be loaded (initialized) first before it can be used. If the plugin library specified by 'url' has not been initialized yet, it will be loaded and initialized.

The tm-load-plugin-from-library message is usually generated with the ButtonWidget and is handled by the core itself.

WidgetMessage: tm-load-plugin-library

 25 avril 2016 à 1h04

The tm-load-plugin-library message loads the specified plugin library and imports information about the contained plugins in temporary tiddlers.

NameDescription
urlUrl specifying the plugin library to be loaded.
infoTitlePrefixPrefix to the temporary tiddlers being created, containing information about the plugins the plugin library offers. Defaults to $:/temp/RemoteAssetInfo/

Example

The following snippet will load the official plugin library:

<$button>
<$action-sendmessage $message="tm-load-plugin-library" infoTitlePrefix="$:/temp/RemoteAssetInfo/" url="https://tiddlywiki.com/library/v5.1.11/index.html"/>
Load official plugin library
</$button>

The tm-load-plugin-library message is usually generated with the ButtonWidget and is handled by the core itself.

WidgetMessage: tm-login

 25 octobre 2020 à 16h31

The login message prompts the user for a username and password and attempts to login to the current serverside host. The tiddler $:/status/IsLoggedIn reflects the current login status with the values "yes" or "no", and $:/status/UserName reflects the current username.

The login message is handled by the TiddlyWiki core SyncMechanism which invokes the current SyncAdaptorModule (typically the tiddlywiki/tiddlywebadaptor plugin).

Depuis : 5.1.23 The login message can optionally accept parameters called username and password that immediately attempts to login with the specified credentials without displaying the prompt

WidgetMessage: tm-logout

 11 août 2014 à 12h33

The logout message attempts to log the user out of the current serverside host. The tiddler $:/status/IsLoggedIn reflects the current login status with the values "yes" or "no", and $:/status/UserName reflects the current username.

The logout message is handled by the TiddlyWiki core SyncMechanism which invokes the current SyncAdaptorModule (typically the tiddlywiki/tiddlywebadaptor plugin).

WidgetMessage: tm-modal

 23 juillet 2023 à 22h54
NameDescription
paramTitle of the tiddler to be displayed
{any other params}Any other parameters are made available as variables within the context of the widget message.
rootwindow Depuis : 5.1.18 yes or true will always display a modal in the wiki-root-window

The modal message is usually generated with the ButtonWidget. The modal message is handled by the TiddlyWiki core.

Fields within the tiddler being displayed in the modal can be used to customise its appearance.

paramObject

The "currentTiddler" variable is set to the title of the modal tiddler, but can be overridden by specifying a different value in paramObject.

Example

Here is an example of displaying a modal and passing parameters to it: (Note how all parameters to action-sendmessage other than $param and $message are available as variables within the modal.)

Your name: <$edit-text tiddler="$:/temp/yourName" tag="input" default="Your name"/>

Your message:
<$edit-text tiddler="$:/temp/yourMessage" default="Your message"/>

<$button>
<$action-sendmessage $message="tm-modal" $param="SampleModal" yourName={{$:/temp/yourName}} yourMessage={{$:/temp/yourMessage}}/>
Click me!
</$button>

Affichera ceci :

Your name:

Your message:

Depuis : 5.1.18 if triggered from within a new window, the above examples will be displayed within that window. The rootwindow attribute can be set to yes or true to inherit this behavior and to display the Modal within the root window

Depuis : 5.1.23 Links to tiddlers within a modal will open in the same story as the widget that sent the tm-modal message. You can override this by specifying values for the variables tv-story-list and tv-history-list when sending the tm-modal message.

WidgetMessage: tm-navigate

 5 juillet 2021 à 10h49

The tm-navigate message inserts the specified tiddler into the story and puts it at the top of the history stack. If the tiddler is not already present in the story then it will be positioned immediately after the tiddler specified in event.navigateFromTitle.

The navigate message requires the following properties on the event object:

NameDescription
navigateToTitle of the tiddler that is being navigated
navigateFromTitleTitle of the tiddler from which the navigation was initiated
navigateFromClientRectBounding rectangle in client page coordinates of the element initiating the navigation
navigateFromClientTop Y coordinate of top edge of bounding client rectangle
navigateFromClientLeft X coordinate of left edge of bounding client rectangle
navigateFromClientWidth Width of bounding client rectangle
navigateFromClientRight X coordinate of right edge of bounding client rectangle
navigateFromClientBottom Y coordinate of bottom edge of bounding client rectangle
navigateFromClientHeight Height of bounding client rectangle
navigateSuppressNavigationtrue causes the new tiddler to only be added to the story, and not the history stack. This suppresses the scrolling associated with navigating to a tiddler

The navigate message can be generated by the LinkWidget, the ActionNavigateWidget and the ButtonWidget, and is handled by the NavigatorWidget.

WidgetMessage: tm-new-tiddler

 23 juillet 2023 à 22h58

The new tiddler message creates a new draft tiddler and adds it to the current story. It requires the following properties on the event object:

NameDescription
paramThe optional title of a tiddler to use as a template for the new tiddler
{any other params}The names and values of additional tiddler fields.
navigateFromTitleTitle of the tiddler from which the navigation to the new tiddler was initiated

The title for the draft tiddler is chosen according to these rules:

  • If additional parameters were used and a title field was specified, use that title
  • If a template tiddler was used, use the title of the template tiddler, making it unique with a numeric suffix
  • Otherwise, generate a new title based on the default new tiddler title with a numeric suffix to make it unique

The new tiddler message is usually generated with the ButtonWidget or ActionSendMessageWidget and is handled by the NavigatorWidget.

Examples

To make a button that creates new tiddlers tagged "task", create a tiddler called "TaskTemplate" with that tag, and then make your button like this:

<$button message="tm-new-tiddler" param="TaskTemplate">New Task</$button>

To create a new tiddler with explicit parameters rather than by cloning a template tiddler:

<$button>
<$action-sendmessage $message="tm-new-tiddler" title="This is newly created tiddler" tags="OneTag [[Another Tag]]" text=<<now "Today is DDth, MMM YYYY">>/>
New Tiddler
</$button>

To create a new tiddler from a template with additional parameters:

 <$button>
 <$action-sendmessage $message="tm-new-tiddler" $param=<<currentTiddler>> fieldname="field value"/>
 New Tiddler
 </$button>
 ```

WidgetMessage: tm-notify

 23 juillet 2023 à 23h07

The notify message briefly displays a specified tiddler as a small alert in the upper right corner of the page. It requires the following properties on the event object:

NameDescription
paramTitle of the tiddler to be displayed
{any other params}Any other parameters are made available as variables to the notify message.

The notify message is handled by the TiddlyWiki core.

WidgetMessage: tm-open-external-window

 23 juillet 2023 à 23h08

Depuis : 5.1.14

The tm-open-external-window message opens an external link eg: "https://tiddlywiki.com" in a new browser window. If no parameters are specified, it opens the help tiddler. Any additional parameters passed via the paramObject are being provided as variables to the new window.

NameDescription
paramURL of the tiddler to be opened in a new browser window, defaults to the TiddlyWiki help
{any other params}Any other parameters are made available as variables to the window. See below.

parmObject

NameDescriptionImportant
windowNameIf a parameter is provided it can be used to open different links in the same window eg: _tiddlywiki. Default is empty, so every link opens a new window.The behaviour is influenced by user settings in the browser and the browsers default behavior!
windowFeaturesThis parameter needs to be provided as a single string. eg: "height=400, width=600". For detailed description about possible parameters see: Mozilla Help

The tm-open-external-window message is usually generated with the ButtonWidget or ActionSendMessageWidget and is handled by the core itself.

Examples

<$button>
<$action-sendmessage $message="tm-open-external-window" $param="https://tiddlywiki.com" windowName="_tiddlywiki" windowFeatures="height=500, width=900"/>
Open ~TiddlyWiki - Action
</$button>

<$button>
<$action-sendmessage $message="tm-open-external-window" $param="https://developer.mozilla.org/en-US/docs/Web/API/Window/open" windowName="_tiddlywiki" windowFeatures="height=400, width=600"/>
Open Mozilla Help - Action
</$button>

<$button message="tm-open-external-window" param="https://tiddlywiki.com" >
Open ~TiddlyWiki - Button
</$button>

Affichera ceci :

WidgetMessage: tm-open-window

 1 mars 2022 à 16h21

The tm-open-window message opens a tiddler in a new browser window. If no parameters are specified, the current tiddler is opened in a new window. Similiar to tm-modal any additional parameters passed via the paramObject are provided as variables to the new window.

NameDescription
param {default param}Title of the tiddler to be opened in a new browser window, defaults to currentTiddler if empty
templateTemplate in which the tiddler will be rendered
windowTitleTitle string for the opened window
widthWidth of the new browser window
heightHeight of the new browser window
left Depuis : 5.2.2 Optional, left position of new browser window
top Depuis : 5.2.2 Optional, top position of new browser window
windowID Depuis : 5.2.2 Optional, unique string used to identify the widow. Can be used with WidgetMessage: tm-close-window to close the window. Defaults to the value of param
{any other params}Any other parameters are made available as variables within the new window

The tm-open-window message is best generated with the ActionSendMessageWidget, which in turn is triggered by a widget such as the ButtonWidget. The message is handled by the core itself.

When used with the ActionSendMessageWidget, param becomes $param

Parameters template, windowTitle, width, height, left and top require the ActionSendMessageWidget.

Depuis : 5.2.2 To close a window opened with tm-open-window use WidgetMessage: tm-close-window

Depuis : 5.2.2 To open a tiddler in more than one new window, use a unique value for windowID


<$button>Open Window
<$action-sendmessage 
  $message="tm-open-window" 
  $param="$:/temp/openme" 
  template="SampleWindowTemplate" 
  windowTitle="My Window Title"
  width="640"
  height="480"
  something="This is my new window. There are many like it, but this one is mine." />
</$button>

Affichera ceci :

WidgetMessage: tm-perform-import

 16 juillet 2014 à 9h43

The perform import message copies tiddlers from a specified plugin into the main store. See the UpgradeMechanism for an overview of how it is used by the core.

NameDescription
paramTitle of the pending import tiddler. Defaults to $:/Import

To select which tiddlers are to be imported, fields with names formed from selection- plus the title of the tiddler are used. The value unchecked causes the tiddler to be skipped from the import.

The perform import message is usually generated with the ButtonWidget and is handled by the NavigatorWidget.

WidgetMessage: tm-permalink

 23 juillet 2014 à 11h37

The tm-permalink message changes the browser address bar to form a permalink to a specified tiddler, defaulting to the current tiddler. The resulting link will be copied to the clipboard.

The permalink message supports the following properties on the event object:

NameDescription
paramTitle of the tiddler to be permalinked
tiddlerTitleThe current tiddler (used by default if the tiddler title isn't specified in the param)

The permalink message can be generated by the ButtonWidget, and is handled by the story mechanism.

WidgetMessage: tm-permaview

 23 juillet 2014 à 11h37

The tm-permaview message changes the browser address bar to form a permaview that specifies all the open tiddlers in the main story river, and the tiddler to be navigated, defaulting to the current tiddler.

The permaview message supports the following properties on the event object:

NameDescription
paramTitle of the tiddler to be navigated within the permaview
tiddlerTitleThe current tiddler (used by default if the tiddler title isn't specified in the param)

The permaview message can be generated by the ButtonWidget, and is handled by the story mechanism.

WidgetMessage: tm-print

 8 octobre 2016 à 9h56

Depuis : 5.1.14 The tm-print message causes the browser to display the print dialog for the current page. It does not require any properties on the event object.

The print message is usually generated with the ButtonWidget and is handled by the core.

WidgetMessage: tm-relink-tiddler

 19 février 2022 à 9h37

Depuis : 5.2.2 The tm-relink-tiddler message relinks a tiddler by deleting it and recreating it with a new title. Unlike the WidgetMessage: tm-rename-tiddler message, this message does not rename the tiddler, it just relinks the references to it.

The relink tiddler message requires the following properties on the event object:

NameDescription
fromCurrent title of tiddler
toNew title of tiddler
renameInTagsOptional value "no" to disable renaming in tags fields of other tiddlers (defaults to "yes")
renameInListsOptional value "no" to disable renaming in list fields of other tiddlers (defaults to "yes")

The relink tiddler message is usually generated with the ButtonWidget and is handled by the core.

Examples

To relink Tiddler1 to Tiddler2 in tags and list fields of other tiddlers:

<$action-sendmessage $message="tm-relink-tiddler" from="Tiddler1" to="Tiddler2" />

WidgetMessage: tm-remove-field

 8 septembre 2014 à 19h51

The tm-remove-field message is handled by the FieldManglerWidget. It removes the specified field.

NameDescription
paramName of field to remove

The remove field message is usually generated with the ButtonWidget, and is handled by the FieldManglerWidget.

WidgetMessage: tm-remove-tag

 8 septembre 2014 à 19h51

The tm-remove-tag message is handled by the FieldManglerWidget. It removes the specified tag.

NameDescription
paramName of tag to remove

The remove tag message is usually generated with the ButtonWidget, and is handled by the FieldManglerWidget.

WidgetMessage: tm-rename-tiddler

 19 février 2022 à 9h37

The tm-rename-tiddler message renames a tiddler by deleting it and recreating it with a new title. The rename tiddler message requires the following properties on the event object:

NameDescription
fromCurrent title of tiddler
toNew title of tiddler
renameInTags Depuis : 5.1.23 Optional value "no" to disable renaming in tags fields of other tiddlers (defaults to "yes")
renameInLists Depuis : 5.1.23 Optional value "no" to disable renaming in list fields of other tiddlers (defaults to "yes")

The very similar WidgetMessage: tm-relink-tiddler message does not rename the tiddler, it just relinks the references to it.

The rename tiddler message is usually generated with the ButtonWidget and is handled by the core.

Examples

To rename a tiddler called Tiddler1 to Tiddler2 and also renaming Tiddler1 in tags and list fields of other tiddlers:

<$action-sendmessage $message="tm-rename-tiddler" from="Tiddler1" to="Tiddler2" />

To rename a tiddler called Tiddler1 to Tiddler2 and not rename Tiddler1 in tags and list fields of other tiddlers:

<$action-sendmessage $message="tm-rename-tiddler" from="Tiddler1" to="Tiddler2" renameInTags="no" renameInLists="no"/>

To rename a tiddler called Tiddler1 to Tiddler2 and respect the setting in the tiddler $:/config/RelinkOnRename for whether to rename Tiddler1 in tags and list fields of other tiddlers:

<$action-sendmessage $message="tm-rename-tiddler" from="Tiddler1" to="Tiddler2" renameInTags={{$:/config/RelinkOnRename}} renameInLists={{$:/config/RelinkOnRename}}/>

WidgetMessage: tm-save-tiddler

 26 février 2014 à 9h07

The tm-save-tiddler message is applied to draft tiddlers. It saves the draft over the tiddler identified in the draft.of field and then deletes the draft. The save tiddler message requires the following properties on the event object:

NameDescription
paramTitle of the tiddler that is being switched out of edit mode
tiddlerTitleFallback title that is used if param isn't specified (automatically set by the ButtonWidget)

The save tiddler message is usually generated with the ButtonWidget and is handled by the NavigatorWidget.

WidgetMessage: tm-save-wiki

 23 juillet 2023 à 23h09

The save wiki message causes the current saver module to perform a full save operation. The save operation can involve user interaction. It requires the following properties on the event object:

NameDescription
paramTitle of a tiddler to use as a template for rendering the wiki (defaults to $:/core/save/all)
{any other params}Any other parameters are made available as variables to use for the rendering.

The save wiki message is usually generated by the ButtonWidget.

The save wiki message is handled by the TiddlyWiki core SyncMechanism which invokes the current SaverModule.

WidgetMessage: tm-scroll

 14 octobre 2020 à 16h24

The tm-scroll message causes the surrounding scrollable container to scroll to the specified DOM node into view. The tm-scroll is handled in various places in the core itself, but can also be handled by a ScrollableWidget.

NameDescription
targetTarget DOM node the scrollable container should scroll to (note that this parameter can only be set via JavaScript code)
selector Depuis : 5.1.23 Optional string CSS selector as an alternate means of identifying the target DOM node
animationDuration Depuis : 5.2.2 Optional number specifying the animation duration in milliseconds for the scrolling. Defaults to the global animation duration.

Set animationDuration to 0 to scroll without animation

WidgetMessage: tm-server-refresh

 11 août 2014 à 12h34

The server refresh message attempts to synchronise the latest changes to the current serverside host.

The server refresh message is handled by the TiddlyWiki core SyncMechanism which invokes the current SyncAdaptorModule (typically the tiddlywiki/tiddlywebadaptor plugin).

WidgetMessage: tm-set-password

 26 février 2014 à 8h52

The tm-set-password message prompts the user for a new password and stores it in the password vault, replacing any existing password. It also sets the $:/isEncrypted tiddler. See EncryptionMechanism for details.

This message is typically generated with the ButtonWidget, and is handled by the core itself.

WidgetMessage: tm-unfold-all-tiddlers

 28 octobre 2019 à 11h38

The tm-unfold-all-tiddlers message unfolds all tiddlers in the current story list. It does so by setting the text of all state tiddlers to: "show".

NameDescription
foldedStatePrefixPrefix for the state tiddler in which the fold state is stored.

The core uses a foldStatePrefix of $:/state/folded/ to store the fold states for the default story view.

The state tiddlers title is computed as foldStatePrefix + TiddlerTitle. If the foldStatePrefix is not set, it will overwrite the text of the tiddler(s) itself, resulting in data loss.

The tm-unfold-all-tiddlers message is usually generated with the ButtonWidget and is handled by the surrounding NavigatorWidget.

WidgetMessage: tm-unload-plugin-library

 4 octobre 2019 à 12h36

The tm-unload-plugin-library message unloads the specified plugin library and deletes associated temporary tiddlers.

NameDescription
urlUrl specifying the plugin library to be unloaded

Unloading a plugin library deletes the following tiddlers:

  • The tiddler titled $:/temp/ServerConnection/ + <url>
  • All tiddlers with the prefix $:/temp/RemoteAssetInfo/ + <url> + /

The tm-unload-plugin-library message is usually generated with the ButtonWidget and is handled by the core itself.

Widgets

 22 juin 2015 à 12h28

L'affichage de TiddlyWiki est piloté par un ensemble de widgets sous-jacents. Ceux-ci sont organisés dans une structure arborescente : chaque widget a un widget parent et zéro ou plusieurs widgets enfants.

TiddlyWiki génère cet arbre widget par l'analyse WikiText des tiddlers. Chaque composant de la syntaxe WikiText, y compris le cas trivial du texte ordinaire, génère le widget correspondant. L'arborescence widget est une représentation intermédiaire, rendue, par la suite, dans l'affichage réel final.

Les Widgets sont similaires aux éléments HTML d'un document. En fait, les balises HTML dans Wikitext génèrent des éléments widgets dédiés.

Chaque classe de widget contribue a une aptitude spécifique de la fonctionnalité globale, comme l'aptitude à afficher une image, un bouton, pour appeler une macro, transclure un texte externe, ou pour marquer une partie du texte comme titre.

Les widget plus spécialisés utilisent une syntaxe de widget polyvalente comme seule représentation WikiText possible.

Les classes de widget suivantes sont intégrées au noyau :

Widgets en WikiTexte

 22 avril 2022 à 15h18

Les widgets enrichissent les fonctionnalités du WikiTexte. Ils ont la même syntaxe que les éléments HTML, mais leur nom de balise commence toujours par $. Par exemple :

<$button message="tm-close-tiddler">Fermez Moi !</$button>

Notez que les widgets héritent de toutes les caractéristiques du HTML dans le WikiTexte :

  • Les attributs des widgets peuvent être spécifiés via :
    • Des chaînes non-cotées (si elles ne contiennent pas d'espace)
    • Des chaînes cotées par simple ' ou double " cotes
    • Des chaînes cotées par des doubles cotés triplées """
    • Des appels de Macro (c-à-d attr=<<maMacro>>)
    • Des transclusions (eg, attr={{MonTiddler!!champ}})
  • Le contenu d'un widget est analysé en mode en ligne sauf si la balise d'ouverture est suivie par deux sauts de ligne, ce qui force le mode bloc.
    • Le mode en ligne signifie que les règles d'analyse en mode bloc comme les rubriques, les tables, les listes, ... ne sont pas reconnues.

Voir HTML dans le WikiTexte pour plus de détails.

Les widgets disponibles incluent :

Wiki

 22 juin 2015 à 21h38

Les groupes de tiddlers à intitulé unique sont contenus dans des objets WikiStore.

Le WikiStore gère également les modules de plugin utilisés pour les widgets, les opérations comme la sérialisation, la désérialisation, l'analyse et le rendu tiddlers.

WikificationMechanism

 13 octobre 2019 à 10h40

"Wikification" is a general term for the dynamic process of converting tiddlers containing WikiText into the HTML DOM representation needed by the browser, and updating that representation if the underlying tiddlers change.

It is composed of several distinct steps:

  • ParserMechanism: reading the text of tiddlers and scanning for wikitext constructions, outputting a tree representation of the resulting structure. It is an expensive process so parse trees are cached, and only need to be updated if the corresponding tiddler is changed
  • WidgetMechanism: starting with a specified root tiddler, recursively instantiate a widget for each parse tree node making a rendering tree. Widgets can optionally also create DOM nodes
  • RefreshMechanism: handling changes to the tiddler store by selectively and efficiently updating a rendering tree

This mechanism is used in the browser to build TiddlyWiki's main interactive page. At startup, the tiddler $:/core/ui/PageTemplate is parsed and rendered to the DOM, recursively pulling in other tiddlers to build the entire user interface. Any user interactions – following a link, clicking a button, or typing in a text box – trigger a change in the tiddler store which then automatically propagates through the widget tree. For example, if the user clicks a link to navigate to a new tiddler, the following steps take place:

  1. Clicking the link triggers the action of the LinkWidget which by default is to add the target tiddler to the list field of the tiddler $:/StoryList
  2. The modification to the tiddler store asynchronously triggers the refresh cycle. The asynchronous triggering ensures that the refresh cycle is only run once even if multiple tiddlers were modified in succession
  3. The refresh cycle recursively visits each node of the render tree giving them the chance to update themselves in the light of the accumulated changes to the tiddler store. In this case, the ListWidget of the main story river notices that a single tiddler needs to be added to the river, and renders that newly displayed tiddler without disturbing the other tiddlers

The performance of the entire wikification process is critical. If the refresh cycle takes more than about 400ms then the user will notice a delay between their actions and the effects. See Performance for some discussion of how to optimise performance.

The rendering process is also aggressively reused in other parts of TiddlyWiki, both in the browser and on the server:

  • Generating TiddlyWiki's standalone HTML representation
  • Creating static HTML renderings of tiddlers
  • Dynamically rendering CSS stylesheet tiddlers

WikifyWidget

 22 janvier 2022 à 19h15

Introduction

The wikify widget parses and renders a string of text and assigns the result to a specified variable. The new value of the variable is available to the content within the wikify widget.

Content and Attributes

The content of the <$wikify> widget is the scope for the value assigned to the variable.

AttributeDescription
nameThe name of the variable to assign
textThe text to parse and render
typeThe ContentType of the text (defaults to text/vnd.tiddlywiki)
modeThe parse mode: block (the default) or inline
outputKeyword indicating the desired output type, defaulting to text (see below)

The available output types are:

KeywordDescription
textReturn the plain text of the rendered output (ie HTML tags are omitted)
formattedtextReturn the plain text with simple text formatting of the rendered output (ie HTML tags are omitted)
htmlReturn the rendered HTML of the output
parsetreeReturn a formatted JSON representation of the parse tree
widgettreeReturn a formatted JSON representation of the widget tree

WikiTexte

 22 avril 2022 à 23h21

Le WikiTexte est le langage de balisage de TiddlyWiki, qui permet d'écrire de manière concise et expressive une grande variété de formatages de texte, de liens hypertextes et de fonctionnalités interactives. Il permet de se concentrer sur l'écriture, sans l'interférence d'une interface complexe. Il est conçu pour être familier aux utilisateurs de Markdown, tout en étant plus focalisé sur les liens et les fonctionnalités interactives.

La Editor toolbar permet d'insérer des balises de WikiTexte dans le texte du tiddler en cours d'édition.

Voir Formater du texte dans TiddlyWiki pour une introduction au WikiTexte.

Les syntaxes suivantes sont intégrées nativement dans TiddlyWiki :

Changements de mode d'analyse du WikiTexte

 21 avril 2022 à 1h35

Voici un diagramme approximatif dont les lignes correspondent globalement aux transitions entre modes d'analyse de l'interpréteur décrites ci-dessous :

mode pragmamode en lignemode bloc<<<@@$$autre syntaxe de début de blocmode en lignesyntaxe de fin de blocligne videbalise ouvrante htmlwidget transcludeappel de macro

Mode de démarrage

Par défaut, l'interpréteur démarre en mode bloc. Néanmoins, un tiddler peut être transclus en mode en ligne auquel cas le WikiTexte du mode bloc ne sera pas reconnu.

Au début du texte seulement, l'interpréteur reconnaît aussi le WikiTexte du mode pragma.

Transitions depuis le mode pragma

Au début du texte, l'interpréteur cherche des pragmas. S'il n'en trouve aucun il bascule en mode en ligne ou en mode bloc, en fonction du mode de transclusion. S'il a trouvé un pragma, il continue à en chercher d'autres jusqu'à ce qu'il rencontre une ligne vide non suivie par le début d'un nouveau pragma.

Transitions depuis le mode bloc

Quand l'interpréteur rencontre la plupart des syntaxes de début de mode bloc, il bascule en mode en ligne, ce qui signifie que le texte compris entre des balises de début et de fin de bloc sera interprété en mode en ligne.

La « balise » de début de paragraphe est « invisible ». Même au sein des paragraphes l'interpréteur bascule en mode en ligne.

Il y a toutefois quelques balises de blocs dont le contenu est interprété en mode bloc :

Pour ces cas particuliers, lorsque la syntaxe de début de bloc est rencontrée, l'interpréteur continue à analyser le texte en mode bloc.

Les lignes horizontales sont un autre cas particulier : elles n'incluent pas de texte, donc l'interpréteur n'a pas l'opportunité de basculer en mode en ligne.

Les balises d'ouverture de widgets ou de HTML peuvent conduire l'interpréteur à changer de mode. Quand une de ces balises n'est pas suivie d'une ligne vide, le texte compris entre les balises sera interprété en mode en ligne. Voir les exemples HTML.

Transitions depuis le mode en ligne

Modes d'analyse du WikiTexte : exemples de HTML

 22 avril 2022 à 21h58

<div>

* La ligne vide après la balise ouvrante permet
* aux marqueurs de mode bloc (comme cette liste)
* d'être reconnus
</div>

Affichera ceci :

  • La ligne vide après la balise ouvrante permet
  • aux marqueurs de mode bloc (comme cette liste)
  • d'être reconnus

L'astuce de la ligne vide fonctionne aussi au sein des syntaxes reconnues seulement en mode en ligne (comme Mise en forme en WikiTexte) :

''<div>

* premier élément de la liste
* deuxième élément de la liste
</div>''

Affichera ceci :

  • premier élément de la liste
  • deuxième élément de la liste


<div>
* Une balise ouvrante non suivie d'une ligne vide
* signifie que la syntaxe en mode bloc (cette liste)
* ne sera PAS reconnue.

Les paragraphes ne sont reconnus qu'en mode bloc. Même avec des lignes vides, aucun nouveau paragraphe n'est reconnu.

Ceci n'est pas un nouveau paragraphe non plus.
</div>

Affichera ceci :

* Une balise ouvrante non suivie d'une ligne vide * signifie que la syntaxe en mode bloc (cette liste) * ne sera PAS reconnue. Les paragraphes ne sont reconnus qu'en mode bloc. Même avec des lignes vides, aucun nouveau paragraphe n'est reconnu. Ceci n'est pas un nouveau paragraphe non plus.


Les Tableaux en WikiTexte sont des éléments pour lesquels l'astuce de la ligne vide ne fonctionne pas. Pour que l'interpréteur reconnaisse une ligne de tableau, elle doit remplir exactement une ligne de texte.

Ajouter une ligne blanche après une balise ouvrante au sein d'une cellule de tableau répartit la ligne de tableau sur plusieurs lignes de texte, et l'interpréteur ne peut plus reconnaître ce texte en tant que ligne de tableau.

|la ligne de tableau|entièrement sur|une ligne de texte|est reconnue|

Affichera ceci :

la ligne de tableauentièrement surune ligne de texteest reconnue

|Avec une ligne vide après une balise ouvrante|<div>

* la liste est reconnue
* mais pas le tableau autour
</div>|

Affichera ceci :

|Avec une ligne vide après une balise ouvrante|

  • la liste est reconnue
  • mais pas le tableau autour
|


Le seul moyen de faire reconnaître la syntaxe de mode bloc dans des tableaux en WikiTexte est d'utiliser un widget $transclude avec l'attribut mode=block.

|Tableau imbriqué<<:>>|<$transclude tiddler="table-example" mode=block/>|

Affichera ceci :

Tableau imbriqué :
cellule unecellule deux
cellule troiscellule quatre

Notez que le widget $macrocall ne dispose pas d'un attribut mode similaire, et le contenu des définitions de macros ne peut être analysé qu'en mode en ligne.


Bien que moins pratiques, les balises html <table>, <tr>, <td> peuvent être utilisées comme un moyen sûr de faire reconnaître les syntaxes en mode bloc à l'intérieur d'un tableau.

<table>
<tr><td>

* premier élément de la liste
* deuxième élément de la liste
</td><td>

|tableau|imbriqué|
</td></tr>
</table>

Affichera ceci :

  • premier élément de la liste
  • deuxième élément de la liste
tableauimbriqué

Modes d'analyse du WikiTexte : exemples de macros

 19 avril 2022 à 23h40

En utilisant la macro tablebanale définie ainsi :

|cellule une|cellule deux|
|cellule trois|cellule quatre|
dans une transclusion, alors :
ce WikiTexteaffichera ceci
1
* <<tablebanale>>
  • |cellule une|cellule deux| |cellule trois|cellule quatre|
2
* <div>

<<tablebanale>>
</div>
  • cellule unecellule deux
    cellule troiscellule quatre
3
* <$macrocall $name=tablebanale/>
  • |cellule une|cellule deux| |cellule trois|cellule quatre|
4
* <$macrocall $name=tablebanale></$macrocall>
  • |cellule une|cellule deux| |cellule trois|cellule quatre|
5
* <$macrocall $name=tablebanale>

</$macrocall>
  • cellule unecellule deux
    cellule troiscellule quatre

Dans le code ci-dessus, la syntaxe de liste à puce est reconnue en mode bloc, puis son contenu est interprété en mode en ligne. Quand l'interpréteur rencontre un appel de macro en WikiTexte il utilise le mode courant pour analyser le contenu de la macro. La macro d'exemple contient une définition de table qui n'est reconnue qu'en mode bloc.

De ce fait, dans la ligne n°1 ci-dessus, la syntaxe de table n'est pas reconnue. Dans la ligne n°2, la ligne vide après la balise <div> bascule l'interpréteur en mode bloc et le contenu de la macro en hérite, donc la table est reconnue.

En utilisant le Widget macrocall, le mode d'analyse reste le mode en ligne (exemples des lignes n°3 et 4 ci-dessus) jusqu'à ce que la balise ouvrante soit suivie d'une ligne vide (exemple n°5 ci-dessus).

Voir aussi Modes d'analyse du WikiTexte : exemples de transclusions pour d'autres exemples similaires.


Dans les exemples suivants, les appels de macros sont directs, au lieu d'être inclus dans des listes à puces :

ce WikiTexteaffichera ceci
1
<<tablebanale>>
cellule unecellule deux
cellule troiscellule quatre
2
<div>

<<tablebanale>>
</div>
cellule unecellule deux
cellule troiscellule quatre
3
<$macrocall $name=tablebanale/>

|cellule une|cellule deux| |cellule trois|cellule quatre|

4
<$macrocall $name=tablebanale></$macrocall>

|cellule une|cellule deux| |cellule trois|cellule quatre|

5
<$macrocall $name=tablebanale>

</$macrocall>
cellule unecellule deux
cellule troiscellule quatre

Parmi ces exemples, seuls les deux widgets $macrocall dont la balise d'ouverture n'est pas suivie d'une ligne vide (lignes n°3 et 4) sont analysés en mode en ligne.

Voir aussi Modes d'analyse du WikiTexte : exemples de transclusions pour d'autres exemples similaires.

Modes d'analyse du WikiTexte : exemples de transclusions

 19 avril 2022 à 23h40

En utilisant le tiddler table-example qui contient :

|cellule une|cellule deux|
|cellule trois|cellule quatre|
dans une transclusion, alors :
ce WikiTexteaffichera ceci
1
* {{table-example}}
  • |cellule une|cellule deux| |cellule trois|cellule quatre|
2
* <div>

{{table-example}}
</div>
  • cellule unecellule deux
    cellule troiscellule quatre
3
* <$transclude tiddler=table-example/>
  • |cellule une|cellule deux| |cellule trois|cellule quatre|
4
* <$transclude tiddler=table-example></$transclude>
  • |cellule une|cellule deux| |cellule trois|cellule quatre|
5
* <$transclude tiddler=table-example>

</$transclude>
  • cellule unecellule deux
    cellule troiscellule quatre
6
* <$transclude tiddler=table-example mode=block/>
  • cellule unecellule deux
    cellule troiscellule quatre

Dans le code ci-dessus, la syntaxe de liste à puce est reconnue en mode bloc, puis son contenu est interprété en mode en ligne. Quand l'interpréteur rencontre une Transclusion en WikiTexte il utilise le mode courant pour analyser le contenu du tiddler transclus. Le tiddler d'exemple contient une définition de table qui n'est reconnue qu'en mode bloc.

De ce fait, dans la ligne n°1 ci-dessus, la syntaxe de table n'est pas reconnue. Dans la ligne n°2, la ligne vide après la balise <div> bascule l'interpréteur en mode bloc et le contenu transclus en hérite, donc la table est reconnue.

En utilisant le Widget Transclude, le mode d'analyse reste le mode en ligne (exemples des lignes n°3 et 4 ci-dessus) jusqu'à ce que la balise ouvrante soit suivie d'une ligne vide (exemple n°5 ci-dessus).

Pour voir d'autres exemples similaires, consultez Modes d'analyse du WikiTexte : exemples de macros. La seule différence est qu'ici l'exemple de la ligne n°6 utilise l'attribut mode du widget $transclude pour forcer explicitement le mode d'analyse plutôt que de de laisser le contenu de la balise le déterminer.


Dans les exemples suivants, les transclusions sont directes, au lieu d'être incluses dans des listes à puces :

ce WikiTexteaffichera ceci
1
{{table-example}}
cellule unecellule deux
cellule troiscellule quatre
2
<div>

{{table-example}}
</div>
cellule unecellule deux
cellule troiscellule quatre
3
<$transclude tiddler=table-example/>

|cellule une|cellule deux| |cellule trois|cellule quatre|

4
<$transclude tiddler=table-example></$transclude>

|cellule une|cellule deux| |cellule trois|cellule quatre|

5
<$transclude tiddler=table-example>

</$transclude>
cellule unecellule deux
cellule troiscellule quatre
6
<$transclude tiddler=table-example mode=inline/>

|cellule une|cellule deux| |cellule trois|cellule quatre|

Parmi ces exemples, seuls les deux widgets $transclude dont la balise d'ouverture n'est pas suivie d'une ligne vide ainsi que l'appel qui comporte l'attribut mode=inline (lignes n°3, 4 et 6) sont analysés en mode en ligne.

Voir aussi Modes d'analyse du WikiTexte : exemples de macros pour d'autres exemples similaires.

Modes d'analyse du WikiTexte

 20 avril 2022 à h36

Pour afficher les tiddlers (généralement le champ text), l'interpréteur de WikiTexte lit et analyse le contenu, et applique les règles de conversion du WikiTexte. L'interpréteur a trois modes d'analyse :

L'interpréteur bascule entre ces modes d'analyse selon le texte qu'il rencontre. De plus, il existe des emplacements où le WikiTexte est ignoré.

Le concept de modes « bloc » et « en ligne » existe aussi pour les éléments HTML standards. En HTML, ces deux modes de mise en page (en anglais) déterminent si le résultat est disposé sur une même ligne ou pas.

La majorité du WikiTexte en mode bloc correspond aux éléments de bloc HTML, et la majorité du WikiTexte en mode « en ligne » correspond aux éléments en ligne HTML. Néanmoins, en WikiTexte les deux modes sont aussi importants pour déterminer la syntaxe utilisable que pour déterminer la présentation du résultat.

Astuce Windows HTA

 2 avril 2022 à 11h58

Sous Windows il est possible de convertir TiddlyWiki en une vraie application locale en renommant le fichier HTML pour lui donner l'extension *.hta. Le module fsosaver peut alors utiliser l'ActiveX FileSystemObject pour enregistrer les modifications.

Notez qu'un inconvénient de cette méthode est que le fichier TiddlyWiki est enregistré avec l'encodage de caractères UTF-16, ce qui double quasiment sa taille par rapport au format UTF-8 habituel. Toutefois, ouvrir puis enregistrer le fichier avec une autre méthode le ré-encodera en UTF-8.

Voir Wikipedia pour plus de détails : https://fr.wikipedia.org/wiki/HTML_Application

Working with the TiddlyWiki5 repository

 20 septembre 2014 à 14h44

Introduction

If you want to contribute to TiddlyWiki's development, rather than installing TiddlyWiki in the usual way, you can work directly with the GitHub repository.

Mario Pietsch has created a short video introduction.

Setting Up

  1. Create an account on GitHub if you don't already have one
  2. Fork the TiddlyWiki5 GitHub repository from https://github.com/Jermolene/TiddlyWiki5
  3. Clone a local copy of your fork
  4. Open a command line terminal and change the current working directory to the root of the repo
  5. Type npm link (Windows) or sudo npm link (Mac/Linux) to tell npm to use this copy of the repo as the globally installed one

After this procedure you can work with TiddlyWiki5 via npm as though it were installed in the usual way with npm install -g tiddlywiki.

See also Scripts for TiddlyWiki on Node.js.

Working with the TiddlyWiki5 repository video

 20 septembre 2014 à 14h40

Mario Pietsch has created a short video tutorial on working with the TiddlyWiki5 GitHub repository.

Travailler avec TiddlyWiki

 27 novembre 2014 à 15h15

Xememex

 10 avril 2023 à 11h50

Xememex is a multiuser TiddlyWiki from Federatial. It allows large groups of people to work together on intertwingled wikis that can share content. It is implemented as a serverless application on Amazon Web Services.

The largest customer implementation has hundreds of online wikis with thousands of users. See https://manuals.annafreud.org/

Xememex is currently only available under commercial terms from Federatial. Contact Jeremy Ruston at Federatial for more details.

Xememex Logo

 

XLSX Utilities Edition

 23 octobre 2016 à 21h23

The XLSX Utilities edition of TiddlyWiki contains tools to work with .XLSX spreadsheets generated by applications like Microsoft Excel and Google Sheets. It can be used in the browser or under Node.js.

https://tiddlywiki.com/editions/xlsx-utils/

zth Operator

 29 octobre 2021 à 3h37
purposeselect the Zth input title
inputa selection of titles
parameterZ = an integer, defaulting to 0
outputthe Zth input title

Learn more about how to use Filters

Depuis : 5.2.1

Z is zero-based. In other words, zth[0] has the same effect as nth[1] and the first operator.

See nth for an equivalent operator with a 1 based parameter

Examples

zth Operator (Examples)

 29 octobre 2021 à 3h35

These examples make use of the Days of the Week tiddler.

[list[Days of the Week]zth[]]

[list[Days of the Week]zth[5]]